Hi, this is Alice Home


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 公益404

iOS 开发总结(一)

发表于 2019-07-19

不知不觉中到了 19 年下半年了,逝者如斯夫,不舍昼夜!
最近出了做开发之外,还帮助以为小仙女 review 代码,当然少不了一些 Bug 的处理。结合之前的开发经验做下总结:

Objective-C 用起来还是比 Swift 顺手

也可能是对于 Swift 还是没有达到运用自如的境地,因为我的项目是完全 Swift 写的,而 Review 的项目是 Objective-C 写的。这样在一天中经历两种语言上的切换,刚开始的时候真的有点不习惯,语法很容易弄错。除去这些不说,在语法提示,编译速度以及排版上,还是感觉 Objective-C 更好一些,用起来更加方便一些,当然,Objective-C 有时候是不能完成 Swift 简简单单的工作的。

总结如下:

  1. Objective-C 对于 iOS 开发来说是非常友好的,而且用起来比较简洁方便,今后想通过 Objective-C 写几个方便好用的库,现在已经起好名字了 MFKit;
  2. Swift 语言很强大,但是不会窥其一二很麻烦,还是要通过大神的代码继续深造
  3. Swift UI 出来了,在 Swift 的 UI 框架,写了几个 Demo 很方便,虽然不能立即应用到项目中,但是它的很多设计其实还是挺有价值的

从同事那里学习到的东西

最近在写代码也出现了很多问题,就是不够有严谨。其实,在真正的开发中,我们往往为了实现某些功能而快速的迭代代码,这中做法是正确的。但是为什么有些人写的代码就是比较优秀呢,这里我觉得可以从我同事身上学习到的是:有次我在 review 代码的时候发现 if - else 中我只处理了 if 的情况而漏了 else 中情况,结果导致了 bug 的出现。同事回了我一句:“每当我写 if-else 的时候,都会记得如果 else 发生了会怎么样,这一点很重要。” 我觉得这就是编程习惯,编程经验。是的,当你在遇到某一种情况的时候,本能反应出其问题所在,那么这样你之后在写代码的时候,自然而然的就会严谨很多,因为你已经将一些严谨的规则变成了习惯。最近,发现这位同事一直在开发间隙学习一些新的东西,很是佩服。

从小仙女那里学到

如何学好 iOS 开发

发表于 2019-06-04 | 分类于 iOS 进阶

不知道,不知道,不知道!
我想把 iOS 学好,我想成为一位优秀的开发者。
那么,如何实现这个目标呢?
首先,第一步明确目标。
优秀的开发者是什么样子的?

  1. 优秀的开源项目;
  2. 牛逼的技术;
  3. 对底层知识了如指掌
  4. 大厂工作
  5. 学习能力强
  6. 涉猎广泛,面对复杂的问题总会有解决的办法

Teach Yourself Programming in Ten Years

发表于 2019-03-09

今天周六,早上看到了这篇文章在此分享一下。

《Teach Yourself Programming in Ten Years》

Why is everyone in such a rush?

Walk into any bookstore, and you’ll see how to Teach Yourself Java In 24 Hours alongside endless variations offering to teach C, SQL, Ruby, Algorithms, and so on in a few days or hours. The Amazon advanced search for title: teach, yourself, hours, since: 2000 and found 512 such books. Of the top ten, nine are programming books(the other is about bookkeeping). Similar results come from replacing “teach yourself” with “learn” or “hours” with “days”.

析: 此段作者描述了一种现象,在书店或者亚马逊上你能看到到处都是关于 24 小时学些某某编程语言的书籍,并附上了亚马逊网站搜索的信息。

The conclusion is that either people are in a big rush to learn about programming, or that programming is somehow fabulously easier to learn than anything else. Felleisen et al. give a not to this trend in their book How to Design Programs, when they say “Bad programming is easy. Idiots can learn it in 21 days, even if they are dummies.” The Abtruse Goose comic also had their take.

析: 这一段就有点意思了,作者应该是用讽刺的口吻来说出了上面的结论。通过上面书店或者亚马逊上的 21 xx 的书籍现象的书了一个结论就是,要不就是人们急于学习编程,要不就是编程是一件极其容易的事情,而且作者还引用了一本书籍和一幅漫画来说明这些问题(通过点击链接你可以去看看那本书和那副漫画)

Let‘s analyze what a title like Teach Yourself C++ in 24 Hours could mean:

  • Teach Yourself: In 24 hours you won’t have time to write several significant programs, and learn from your successes and failures with them. You won’t have time to work with an experienced programmer and understand what it is like to live in a C++ environment. In short, you won’t have time to learn much. So the book can only be talking about a superficial familiarity, not a deep understanding. As Alexander Pope said, a little learning is a dangerous thing.

  • C++: In 24 hours you might be able to learn some of the syntax of C++(if you already know another language), but you couldn’t learn what C++ is actually good(and bad) for. So what’s the point? Alan Perlis once said: “A language that doesn’t affect the way you think about programming, is not worth knowing”. One possible point is that you have to learn a tiny bit of C++ (or more likely, something like JavaScript or Processing) because you need to interface with an existing tool to accomplish a specific task. But then you’re not learning how to program; you’re learning accomplish that task.

  • in 24 Hours: Unfortunately, this is not enough, as the next section hows.

析: 这一段作者直接分析了 “24小时自学 C++”这个书名,这其实是《如何阅读一本书》中第三层阅读中第一步的实践,就是从书的标题中你能获得什么。首先说了,自学这件事,24 小时内你写不了几个重要的程序,也不能从从成功或者失败中学习到什么东西。更进一步,你也没有时间和其他有经验的开发者交流学习以及不能够熟悉 C++ 的开发环境。总之,你没有太多的时间来学习,所以这本书一定是不求甚解的。作者最后还引用了一句谚语,其实中文就是不求甚解是很危险的,我还特意查了下这句谚语处处,看连接 A little knowledge is a dangerous thing。
接下来,作者摘除了 “C++” 这部分,24 小时,如果已有编程经验的话或许可以学习 C++ 的语法,但是针对于如何使用这门语言你是不可能学到太多的。也就是说,如果你是一名 Basic 语言的开发者,你也许在 24 小时内可以将 Basic 程序用 C++ 语言来翻译一遍,但是你却无法参透 C++ 的优劣。所以,这 24 的重点又是什么呢?或许你知识为了通过学习 C++ 来完成一个任务,而不是通过学习 C++ 来学习编程这件事。作者还引用了Alan Perlis 的一句话,就是 “如果一门一语不能够影响你的编程思维,那么这门语言是不值得学习的”,他的至理名言还有很多,你可以通过点击上面的连接来了解。
最后一部分是时间,很不幸,这点时间根本就不够,这部分将在后面继续论述。

读到这里,其实我已经对作者很佩服了,他的知识面的广度真是令人佩服。所以我查了下作者,原来是谷歌的顶级人物。其实,看到这里,已经能学习到很多东西了,那本书《How to Design Programs》,那页漫画,以及 Alan Perlis。

好了,继续

Teach Yourself Programming in Ten Years

UI Control(一)PagingMenuController

发表于 2019-02-25

参考:

  1. kitasuke/PagingMenuController
  2. 30个让你眼前一亮的iOS Swift UI控件!

MacBook Pro 适配器坏了

发表于 2019-02-25 | 分类于 杂记

适配器坏了 !!!
晚上,看着电脑没电了拿来适配器插上,额 …
适配器的头灯没亮 ~
插孔坏了,换个一个插孔 ~
电脑坏了,重启一下 ~
吹一吹插头 ~
…
一个小时后,电脑没电自动关机了 😭
….
找另一台电脑查询电脑是否在保修期,同时借了同事的适配器确认下是不是适配器坏了
确认,应该是适配器坏了

维修

在苹果官网查看您的保障服务和支持期限
可以通过索引找到附近的维修电,去预约,我没有预约直接早上 10 点之前到了益田假日广场苹果店门口。真的挺正式的,不到 10 点不营业,店里已经站好了销售和售后人员,10 点 55 分 55 秒,工作人员一起喊倒计时 5,4,3,2,1
如果有预约的话,直接去签到等着工作人员就好了。如果没有预约,现场预约 30 分钟后去签到就可以了

诊断

很简单,适配器拿去做了诊断,结果是:坏了,而且已经过了更换期限,所以只能再买一个 大约 500 RMB,顺带着让帮忙测了下电脑硬件有没有问题,没问题,没有用苹果新的适配器,回公司~

更换


在网上买了绿巨能的 85 W,我的是 2015 MacBook Pro。
购买的时候和商家沟通,然后确认是哪个型号的 一般有 45W 60W 和 85W的,下单。
第二天中午送到,吃完饭回来插上
红色 ~
绿色 ~

nice 又活了

思考

我是有苹果适配器的,以前的,但是接口不能插到我目前的电脑上,是老式的厚重 5 针的那种,只有插头不能用,瓦数都是可以的,我想着换一下插头的,但是苹果线里面是很多条细线的,不好接,怕电压不稳点再把电脑给烧了,就得不偿失了。
其实,如果苹果设计的适配器和电源插头可以分开就好了
~
目前新版的 Tap-C 的我看到已经是线和适配器分开了,这样扩展性会更好一些

如上图所示,下面的线与适配器已经分开了,如果早期的也设计成这样我就不用再买一个新的了以前的就可以用了,或者只需要买一根线几可以了~但是如果没有遇到这次的事情,也许我也不会注意到这个细节

30 个 UI 控件实现原理

发表于 2019-02-24 | 分类于 30 个UI控件

在掘金上看到了一篇 30个让你眼前一亮的iOS Swift UI控件! 文章, 所以想根据作者的收集花一段时间来亲自实现这些效果

  1. TwicketSegmentedControl

UI Control(一) TwicketSegmentedControl

发表于 2019-02-24 | 分类于 30 个UI控件

效果


特点:

  • 有惯性
  • 流畅
  • 文字根据滑动块部分变色
    上面的三个特点是根据滑动效果得出的,只是简单的从表面入手观察

UML

预备知识

layer.mask 属性

如何实现惯性

swift 声明协议的时候后面带有 class 关键字

open 关键字作用

布局常量的使用

庖丁解牛

###

Swift(三) 闭包

发表于 2019-02-23 | 分类于 Swift

闭包,这个不太好理解的概念,本来就是一个匿名的函数,但是因为各种简写既方便又难以看懂了。

格式

简写

尾闭包

逃逸闭包

《人类简史》读后感

发表于 2019-02-23 | 分类于 读书

书名:《人类简史》(从动物到上帝)
作者:尤瓦尔·赫拉利[以色列]
译者:林俊宏

目的

读这本书起源于网络的推荐,各种推荐说这本书很棒,所以就买来了读一读。读了前两部分之后,觉得不应该在这么无目的的读了,于是思考为什么要读这本书?然而如何去思考呢?好吧 … 我确实不知道为什么去阅读他,也许只是因为有很多人推荐,所有就放到了阅读计划里。

读后感

整体感觉

读这本书让我觉得不知道为了什么而活了,似乎身边的公司、国家、政府、社会都是虚无的,仔细想想倒有点意思。这些概念形成的目的就是为了让千千万万的人类一起协同工作,为了能够一起继续生存下去所以我们相信了这些不存在的东西。似乎有一种跳出三界外,不在五行中的感觉。让我看待这个世界的视角发生了一些变化,当然每天的工作以及家庭的生活还是会将我拉入现实当中。

思考

思考,书中许多次的去思考智人为什么变得如此强大,我们为什么喜欢去旅游,为什么我们认为某些东西是正确的(即使想想这些东西并不存才),对于这些问题的思考其实对生活中看待事情的方式还是由很大裨益的。我们每天生活,工作,交流,学习的目的是什么?虽然不知道,但是看了这本书之后可以根据它里面的一些观点去思考

农业社会是个大骗局让我大跌眼镜

农业是个骗局,真的是非常**的观点。采集的生活让我们自由自在,让我释放天性。农业社会我们虽然稳定了,但是却被那小小的房子束缚着,为了更多的粮食拼命的劳作这,我的父母就是农名,当年还开荒种过地呢?读到这一大段内容的时候我是和作者有共鸣的,因为我深深地体会到了农民的不易,起早贪黑的劳作着。想想也确实没采集生活过的逍遥自在

Swift Programming Language(1) The Basics

发表于 2018-09-20 | 分类于 Swift

Constants and Variables

常量和变量的作用就是把一个名字(比如 maximumNumberOfLoginAttempts 或者 welcomeMessage)和一个特殊类型的值(比如 10 或者 “Hello world”)关联起来。常量的值一旦设置就不能修改,变量可以设置不同的值。

Declaring Constants and Variables

常量和变量必须先声明后使用。使用关键字 let 声明常量,使用关键字 var 声明变量。例如:

1
2
let maximumNumberOfLoginAttempts = 10
var currentLoginAttempt = 0

上面这段代码可以阅读为:
“声明一个新的常量 maximumNumberOfLoginAttempts ,并且赋值为 10。声明一个新的变量 currentLoginAttempt 赋值为 0”
在上面的例子中,最大达尝试登陆次数被声明为了常量,这是因为这个最大的尝试登陆次数后面不会再改变。当前登陆尝试次数被声明为变量,这是因为这个值在每次登陆失败之后会递增。
可以在一行中声明多个变量或者常量,中间通过逗号隔开:

1
var x = 0.0, y = 0.0, z = 0.0

NOTE
如果你的代码中存在永远不会修改的值,那么就需要将这个值声明为常量(使用 let 关键字)。变量只用来声明那些需要改变的值

123…13
Alice

Alice

The Loneliest Whale in the World

121 日志
35 分类
30 标签
© 2021 Alice
由 Hexo 强力驱动
主题 - NexT.Pisces