Onelong

分享知识,与你一起进步......
RSS icon Home icon
  • 项目小结

    post by onelong / 2016-3-31 20:57 Thursday [工作]

     这几天终于闲下来了,想对项目开发做一些简单的总结。案场是一款面向房地产企业的app应用,简单的来说类似于移动办公的app。就项目技术而言,还是比较简单的,业务相对复杂一点,操作起来也相对复杂一点,当然用户体验很多时候是产品设计的时候定下来的,这里就不说了。
    android版本,除了当时我选择了一些基础代码库之后,我基本没怎么参与。没有参与有很多种原因:
    1、自己有过4-5年的android经验,历史经验告诉我,不难只是工作量大。
    2、iOS开发存在很多未知问题,我需要花多时间去探讨。
    3、第一周我看android开发的小伙子写的代码,代码质量不错,效率也比较高,责任心比较强,很放心。
    在android版本开发的过程里面,我只是偶尔会review一下代码,看到有问题的回去修改或者提醒修改。到项目的后期,我回头看android代码的时候,感觉会比我自己写得要好,起码比较规范,无论是activity还是fragment都是固定的模版,对接受项目者还是比较友好的。当然开发过程还是存在一点点问题的,就是没有提前做好规划,导致后面加Loader,下拉刷新很乱。如果当初规划好一点,后面的工作会更加顺利和舒心。
    android开发的前期工作,我还是做了很多东西的,封装网络的基础库,例如基于OKhttp的Volley,session会话的保存,还有基于gosn网络库的封装。这次尝试了新的东西,把所有接口都写在一个文件上面,方便管理。但是后来发现,这样搞法哪个文件的代码量会很多,阅读起来会比较累人。后来看了看clean架构,感觉会比较清晰,下次有项目再用。本来计划在这个项目要用rxandroid的,由于开发人员对它不熟悉,最后也没用上,还是老模式的MVC,但是下次还是希望放弃EventBus改用Rxbus。
    对于iOS版,基础库还是我搭建的,只是大部分有不是我做的,在以往的开发中,都是纯代码开发,但是在这个项目中,我选择了storyboard+Autolayout,在开发的过程的确踩了很多坑,但是我不后悔这样的选择,有时候有些经历是无价的,我知道很多大公司都选择了很成熟的方案,例如微信QQ,基本都是纯代码写的。 storyboard是苹果推荐的,苹果最终的目的是让UI设计去布局,程序员只关心业务逻辑,但是国内适合没那么受欢迎。storyboard非常方便人熟悉项目框架流程,但是编译慢,多人协作麻烦。说到多人协作,整一个xcode都不是特别人性化,多人提交的时候很容易产生冲突,特在是SVN上。
    踩过很多坑,让我了解了很多东西,经过这个项目起码对Autolayout,RAC是比较了解了。我不想去简单的评价对和错,方案通常是需求决定的,storyboard对个人开发是友好的,但是对团队开发需要拆分多个,而且尽可能简单。对于纯代码,看起来很凌乱,对于新人需要配备ViewController 跳转图才容易熟悉代码。当你熟悉storyboard的时候,你会发现开发mac os x的程序也同样适用,而且快速入门。
    去年11月开始,我一直关注着iOS开发,也是从自身发展来看的,我需要多几个项目来完善自己知识体系。经过这个项目,学习到了很多东西,一部分是在别人博客的是看到的,一部分是自己尝试出来的,还有一部分是和别人交流出来的,不管从哪里来的,对自己都是一种很好的经历。项目后期我想了很多关于框架的问题,关于很多安全的问题,关于很多底层的问题,对runtime,runloop,多线程有了更多体会。
    对于技术,我个人还是喜欢找些新东西去折腾,哪怕过程有点坎坷,但是只有心临其境才能真切的感知那些不曾想过的问题,解决哪些不曾想过的问题。任何一个方案都是有适用范围的,不可能是万金油。有些人可能在大公司呆过,看过很多有经验的文章,可以很轻松的做出选择,但是对于没有这样经历的人,只能靠自己尝试了。 

  • 美丽的成长

    post by onelong / 2016-3-20 16:02 Sunday [工作]

      以外包的形式在珠海移动呆了两年,也休闲了两年,蓦然回首感觉浪费了这两年光阴。开发工作上面,没有多大的改变,还是一个人瞎搞,喜欢什么就用什么,不想折腾就是一直用原来的,用自己习惯的,从来不曾思考过怎样才能做得更好,尽管在移动做的3个app,领导是认可的,但是对自己而言,没有什么意义。做到不崩溃就是好的话,其实只要认真就可以了。珠海这个地方是一个休闲的地方,的确也是我向往生活的地方,特别在我买车后,我似乎更热爱斗门了,农村的气息是那么的恬静和温暖。在珠海工作,在情侣路旁边工作,逛情侣路是饭后的主要活动,在这段美丽的情侣路上,我思考过很多问题,迷惘过,纠结过。两年,团队从10几个人到2个人,业务从开发到维护,渐渐的改变了自己,在移动工作就是拿钱的,所以我拒绝了所有加班,哪怕是领导要求的。我觉得加班没有意义,只是浪费生命罢了,做出来的东西,反正没人能推广,也没有人愿意推广,比较互联网产品不是移动的主要业务,主要业务是千百年不变的卖电话卡。国企,大家都是看钱做事,推广app没什么薪酬,固然别人不愿意。有能力的客户经理,一下拿下一个大企业的单子,基本今年不愁了。在移动的那段时光里,让我觉得真正有点意义的事情是了解了一些项目流程化监控,练熟了iOS开发,考了个驾驶证。
           尽管这两年在工作上没有什么突破,对人生还是有意义的,工作的休闲,让我尝试了很多其他的领域。连不曾想过的早晚花4个小时回家住,天天这样坚持了一年。结婚后,一个偶然的机会,我离开移动来到深圳。深圳,这个城市,一直是很鼓舞人的城市,也是梦想和现实对比度的城市。对比两年前的深圳,房价翻了几番,发现几百块租不了房子了,当然这些都不会影响我,我选择来深圳,房子肯定是住得起的,而且也不曾想过要在深圳买房,稳定下来。在深圳只想把握时间,做些自己不曾做过的事情。在2015年中,有个朋友说要离职回家创业,要找个人来替代他的岗位,月薪2w起问我愿不愿,主要是管理一个商城。思考了几天,由于各种担忧,我放弃了。一方面是担心能力问题,另一方面是放不下家的事情。工作那么多年,一直都是自己独立开发,走进一个团队,感觉很迷惘,不知道该如何协作,当然我一直相信自己,只要愿意下决心,肯定可以胜任的,只是不想改变罢了。
          由于被偏爱的信任,来到深圳扮演着一个项目主管的角色,去负责移动app项目。压力还是蛮大的,最初看原型的时候,只给了一个角色,看起来不多,那边计划3个月搞定,我看着蛮简单的,应该没有问题。后来看了设计图,我才傻眼了,不计重复108个页面,一个小伙子布局都要好久,还没说对接那70个接口呢! android的,我不担心,因为太了解了,没技术难题都是工作量。对于iOS,我纠结了好久,选择了布局最快的storyboard,也是这样我顺序了解autolayout这个东西,尽管在以前用过,但是了解还是太少了。什么没有认识多少个做iOS的人,在一些开发群里面问问题基本是没有人回答的。后期发现用一个storyboard很多问题,编译慢,多人修改冲突。后来问师弟说她们是分拆多个storyboard来解决冲突的,于是我们也分拆了6个storyboard,顺利开发下去。随着使用知乎和简书,当初那种无知无助也渐渐消失了,有了新的思考和想做更深入的事情。
          今年年初,由于外包人员要撤离,所以要招人面试等。面试还是挺有意思的,我没有选择让面试者做笔试题,因为在过往的面试经历中,我觉得那次去腾讯面试印象最深,所以我仿效过来,流程简单粗暴:自我介绍-介绍项目-自己准备10个问题。主要在交谈中了解能力,性格和兴趣,细节决定成败,很多时候我喜欢问细节,了解细节的人肯定是做过开发的,简历也会比较真实。 面试中,有几个问我薪资问题,我还是表现得挺严谨的,我只负责技术面试,薪资方面要和hr谈。好装逼的感觉,哈哈。
           往后还是希望从架构上突破,完善自己体系,争取早日实现年薪40w....目标也许有点遥远,但是至少有个敢说出口的目标嘛,至少能不让自己浪费光阴。

  • Node.js 多进程

    post by onelong / 2015-9-27 3:46 Sunday [web api]

    线程是cpu调度的一个基本单位,一个cpu同时只能执行一个线程的任务,同样一个线程任务也只能在一个cpu上执行,所以如果你运行Node.js的机器是像i5,i7这样多核cpu,那么将无法充分利用多核cpu的性能来为Node.js服务。 

    阅读全文>>

  • Netty IMdemo

    post by onelong / 2015-9-22 16:06 Tuesday [java]

    Netty 4和Netty 3很不同,以前写过Netty 3的demo,现在写Netty 4有点吃力。单纯用socket来通讯,要自己定协议来处理粘包,而Netty帮你处理好了,你只需要会用就可以了。例如:

    阅读全文>>

  • xcode7 http

    post by onelong / 2015-9-21 17:15 Monday [apple]

    更新了xcode7和iOS9,发现原来的http不能用了,提示:

    App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

    阅读全文>>

  • android studio jni

    post by onelong / 2015-9-8 21:47 Tuesday [android]

    在android studio 导入jni项目,报如下错误。

    Error:(12, 0) Error: NDK integration is deprecated in the current plugin.  Consider trying the new experimental plugin.  For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental.  Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration.

    阅读全文>>

  • Android 外勤管家

    post by onelong / 2015-8-14 21:42 Friday [android]

    android版截图:

    点击查看原图

    阅读全文>>

  • iOS 外勤管家

    post by onelong / 2015-8-14 21:10 Friday [apple]

    忙碌了3个多月,终于把外勤管家做完了。iOS版外勤管家大部分是用oc写的,后面新需求是用swift完成的。xcode越来越好用了。具体开发也就不说了,上图留个纪念吧。后台定位,前台规划轨迹。

    阅读全文>>

  • iOS 推送

    post by onelong / 2015-8-14 20:32 Friday [apple]

    调试推送的时候,应该先生成app id 、证书,然后再生成profile才可以的,不然很可能报错。

    “Error in registration. Error: Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用程序的“aps-environment”的权利字符串" UserInfo=0x43eba0 {NSLocalizedDescription=未找到应用程序的“aps-environment”的权利字符串} ”

    阅读全文>>

  • android 热点

    post by onelong / 2015-8-2 0:48 Sunday [android]

    最近要做一个热点App,类似快牙。也是这样看系统的Settings代码,做点笔记吧。创建配置对象:

    public WifiConfiguration getConfig(int type,String ssid,String password) {

    阅读全文>>

  • ios 后台定位

    post by onelong / 2015-7-5 0:36 Sunday [apple]

    最近的项目要到后台定位,看遍了网上的demo,不是这个,就是那个有点问题。apple文档上面写得很简单,作为新手,很麻烦。iOS开发越来越简化了,隐藏了太多细节了。

    阅读全文>>

  • https和RSA

    post by onelong / 2014-9-19 21:01 Friday [java]

    最近突然想去了解一下https相关的知识。首先是理解了https的握手,客户端请求服务器时,可以得到公钥,得到公钥之后,客户端生成随机密码加密传给服务器,https使用非对称的加密方式,也就是使用公钥加密的数据,只有使用私钥才可以解密,这样可以保证密码交换的安全性。在握手的过程中当然要保证传输证书的时候不能被中间人篡改吧,所以在握手的过程中还需要一个机制保证数据的完整性。

    阅读全文>>