2017/05/1lesson

May 1, 2017

2017/4/12

这里记录一个关于自定义控件改不改放到window的问题。项目中有一个功能,将控件放到view上,当控件里面获得由delegate将控件的父级试图push到下一个页面,同时,下一个页面不出现该控件。
这时候如果控件是挂载keyWindow或者其他上,则会出问题了:push的时候,控件仍然存在。如果有这个需求,可以在计算高度上,给其加上一个property:containerFrameFixY用来适应其他页面中可以偏移的坐标优化。

这是一个最好的时代,也是一个最坏的时代。谁能抓住这个时代的线索,就有机会突破。

我们有数不尽的第三方库、数据库、图片、设计参考等等。基本都可以一个人几天就做一个东西。但是相同的,每个人都有机会,那么每个人的机会都是很大的,自己不努力一转眼就会跑到后面。现在要做的是,做小而精的东西,实现流量变现、流量入口观测、广告营收、产品推广、内容博人眼球!!!
现在的路有两条:

  1. 继续研究多媒体,或者更多多媒体能力
  2. 将现今的能力优化,将所学获得额外回报
  3. 对,还有第三条:在[2]的基础上,在继续研究多媒体。

我觉得最好方法,正是第三条。程序员也是人,没有好的生活保障是没办法将知识扩展深化,那么我现今的目标是在now:2017/04/18开始一个月搞定parse服务器、客户端、cloudCode、liveQuery、push、analysis、产品等 做出来,是的!!!

学习别人怎么做的,很简单的方法就是对着别人的东西抄一遍;再抄一遍;再再抄一遍;再再再抄一遍;知道抄出心得;再默写一遍,那么基本都有7、8层把握得到他人的精髓了。去年我这么做的,今年再加把劲获得更多的知识和经验!!!先获取事业上的知识,然后再继续深入研究多媒体能力。

这里提一点有意思的,这几天抄faceBook一个示例,他们在import 一些库的时候,会分类那些作用类,中间隔空格分开。有意思,跟我思路一样,我觉得,这是必须的,好认啊,宁愿多浪费一行空格行得到阅读代码的体验。

. Ctrl+Command+left/right 返回前一浏览页,进入之前前一浏览页
. Ctrl+Alt+left/right 将代码折起来

2017/04/18

记录一件事,事情是这样的:昨天晚上加班,下班晚,出门刚好看到老板。打招呼,问我最近适应否,答曰还行。我和老板都感慨”适应难度也是跟项目大小正比,我们产品精细,功能乍看不多,但一接触就知道确实很多,每个都是小而精的。”这时老板打开手机,随意打开几个界面,停留到一个界面:这是最近我开发的一个切面功能。他来来回回滑动那个功能,跟我说,你看这个飞机,飞的很好,还有云,背景,,还有你感觉,这里面的体验也是非常好的,来回切换,非常顺滑。我不动声色的感慨,能让用户觉得使用这个功能很开心,真是会让我这个开发者深受感动啊。开发者和老板之间的关系,我个人觉得工作是互赢的态势,不应该是疲劳驾驶般;但另一方面来讲,由于开发者、工作者需要获得工作资金的来源而和老板成了有主次关系的区别,这也正是为什么我觉得是时候搞一些#务副业#的事。今天回头想想一些事情经过,其实还是有可能老板知道我最近处理这方面功能,毕竟老板其实都是那么随随便便做出某些举动,然后乘机鼓励鼓励下属的行为,应该是吧。不过,最后一句,我很感动,能为他人服务是我的荣幸。我是服务者,至始至终都是大家的服务者,就为了大家的生活便利、开心,如果没有人愿意得到我的服务,那我就是真的失败了。

今天写到正则,由于需要在判别字符里面的搜索,如:”#[卷卷公主的日常打喷嚏]”,搜索这个字符,这时会出现特殊字符,使用”(%@)”输入字符,则成了”(#[卷卷公主的日常打喷嚏])”,然而”#”、”[“、”]”都为特殊字符,这时要替换里面的字符,此处处理为replaceOccurredString:@”#” ->@”\#”。

http://stackoverflow.com/questions/11442101/ios-regex-unknown-escape-sequence 这里有答案:

You’re getting the warning because | is not a valid escape sequence in Objective-C (or C or C++ for that matter). The compiler is ignoring that and just using a raw | character instead, so the string you’re actually passing in is @”|(.)|”.
To get the behavior you want, you have to escape the backslash in your source code so that the regex engine sees the literal backslash and interprets the | character as a literal instead of as alternation, e.g. @”\|(.
)\|”.

最近想了些问题。怎么为他人服务,怎么让他人觉得我的服务到位。

来到粉粉平台,努力工作,实现自己的人生价值?是的,谁都有其位要去领悟,谁都有机会去得到自己的人生价值。
我一直要让自己成为一名真正的服务者,但是来到一个大家庭,成为一份子的同时,与大家共同加油为更多的人服务;和比如我开一个小餐馆,好好为每个顾客从进门的一开始就尽心尽力让他们感到家的体验,这两种是不一样的。有人选择与一个大家庭共进退,分享,共赢;有人会自己寻找一个天地;虽然都是为了“服务”他人而生,只是选择的路,身边的人不同,有自己的择决。

最近就有这些方面的择决。从小家庭出来的,底子薄,我的事业全是自己走,父母帮不上,那么我小心一点,先从大家庭增长经历,有历练了,那就是时候在共进退方案进化去带领前进,最后自己有直接为大家“服务”的机会。是的,在大家庭,是看不出汪洋大海,那一滴是你的心血。他人是不会说“哟,这个就是你的作品”的,只是匆匆而过,也许稍作停留,可是最终的视线还是远观大的方面。

努力让大家看到你的影子吧,努力让大家看到自己的心血,而不是被淹没,被掩盖!

  1. 添加远程仓库:git remote add remoteName url

  2. 获取或推送:

1
2
3
4
// pull
git pull remoteName branchName
// push
git push remoteName branchName

评分标准

态度 10%:
考勤
主动性
自我管理
技能 30%:
技术能力
评估能力
执行 30%:
完成速度
完成质量
创新 20%:
新技术学习
重构能力
分享

iOS 初中高级技能推荐标准

初级:
2-3年工作经验
1 熟练使用Foundation CocoaTouch等基础UI框架,配合动画,开发各种常见界面;
2 熟练使用网络和图片库,理解同步异步原理,有图片前后处理意识;
3 熟练掌握数据持久化;
4 能开发自定义界面;
5 熟练使用常用第三方框架。
关键字:UIKit GCD UITableView AFNetwroking SDWebImage

中级:
3-4年工作经验
1 掌握面向对象设计,理解设计模式;
2 对常用组件使用有自己的理解;
3 了解流行的第三方框架原理,并有自己的封装库;
4 开发过自定义界面,能横向对比类似实现。
关键字:引入,封装,性能,界面库,网络库

高级
5年以上工作经验
1 熟练搭建项目,选择合适的框架,指导初中级开发;
2 具备需求分析、技术规划、项目管理能力,带领团队开发;
3 善于沟通,管理团队。

今天和同时旭哥搞版本合并,做法和以前完全不同,每次操作都是慎重处理,合并完那么就会很轻松,这种态度。
放一个链接
http://blog.sina.com.cn/s/blog_68af3f090100rp5r.html

  1. 是这条命令先查看两个版本差异在哪里,然后打开 a.diff 文件git diff --name-status --diff-filter=A 当前分支 需要合过来分支 > a.diff
  2. 切换到主分支,然后使用下面语句,或者用#SourceTree#的合并版本到当前版本 git merge 需要合过来分支
  3. 解决冲突
  4. 使用这条命令pod install --verbose --no-repo-update更新那些pod需要更新的文件
  5. 解决冲突之后不要立马commit到本地,先运行一遍,然后将丢失的文件找回来,bug冲突,build不过原因解决掉。
  6. coommit到本地

project文件,使用‘当前’我们不熟悉片段的,比如在5.2中,当前“我的”指“5.2”,然后我很清楚合过来的是我做的代码,那么solving trouble using mine

其他类文件,查看<<<===>>>,然后将之解决掉

由于中途出现了错误,我commit了当前有冲突的代码,然后不知道怎么处理:

1
2
git stash                   //将还没push的文件保存至本地
git reset --hard HEAD~1 //将版本commit情况回退到 HEAD~x x为回退第几个版本

上周做了次code review,是剖析了下我当时写天气时候代码的快慢和质量。
在完成天气那段代码,使用js方式分块将独立功能模块自己整合,由外部调用。

  1. 然而外部调用的时候却没有好好管理好这个组织过程,组织过程交给了vc做,当时为了更快没有更好的做一个adapter。我这里设想:我有个天气管理器,他暴露出来需要require的dataSource,和option完成的dataSource,然后在vc提供好相应模块即可。然后天气管理器再产生reloadData方法重新设置内容物。
  2. 代码log,里面由于用到log,所以在有些没有识别价值的log在完成后应当去掉。
  3. 里面出现一些没有意义的变量名。不管如何,还是不要出现这种情况
  4. 在逻辑多、容易混淆,正确的注解将会很大有效的帮助理解。毕竟写这代码和将来某个人来改,将比重做还要难。
  5. 合理使用PM分区,此处给出一段:(下一段代码)
  6. 代码重复优化
  7. 硬编码,在不了解其硬编码在其中有什么意义,一定一定要做好注释
  8. 循环引用的问题,也许多改的一个问题将会提升APP使用体验。
  9. 当时开展活动的是旭哥。他提到的一点:破窗理论,我觉得很有道理,给自己的工作留点心。
1
2
3
4
5
#pragma mark - life cycle
#pragma mark - private methods
#pragma mark - event response
#pragma mark - UITablViewDelegate
#pragma mark - getters / setters

最后总结一点,时间一定要把握好。之上的问题,很大原因也是跟时间不够,为了挤时间,在短时间内达到目的,赶紧转战其他问题。但是在力所能及的问题上,多累一些自己,可能会带来更好的结果吧。
这也是一个等效时间转换:自己时间节省了,机器就要多累一些;自己多花时间了,机器就更节省了。如何看待,就看这个功能在用户使用频率问题上多考究考究。毕竟作为人,一定要有所谋,有所舍弃吧。