致工作室的一份信-写于2016年

title: "致工作室的一份信"
date: 2016-03-27 23:21:35
categories: 闲情杂记
tags:[闲情杂记]


外加最近换了工作去了一间外包公司,接触了点的东西,感觉跟现在的工作室很想,心里很有感触,趁热打铁写下来。

工作室相当于一间小型的外包公司

为什么说现在的工作室相当于外包公司呢?了解了现在所处的公司的现状,感觉就是很像。怎么像呢?

领导人(ceo)为技术出生(老甘博客)。技术出生的人一般都有什么特质呢?

个人认为,对于一个款产品的敏感度不够。往往不会因为一款产品,去拿风投。更多追求在于用技术来解决问题。出于这种思想,创业的选择更多的为一间外包公司。

回头看我们的工作室,你发现由于历史的原因,传承下来,血液里的领导人一般都是技术不错的负责人。

那么最多也是负责人像而已,怎么是一间外包公司呢?

因为每当老师的项目一来,或许外面的人慕名而来请求合作的时候,我们就充当了一会外包公司,帮他们完成需求搞项目。简单的项目可以很快的赚点小钱,困难的话进行衡量后,看是否自己能够接受挑战,解决一些技术上的难题,对自己以后也是很有好处的。

最后一点,虽然现处的是一间外包公司,除了帮别人搞外包意外,还是有自己的产品的。领导人倡导的路线是从外包公司为突破口,慢慢积累后进行转型。(这里引用他的博客所见)

像腾讯,像网易,他们早期都是帮中国电信做一些小的项目去维持,积累下来,包括UC浏览器,也是帮电信做项目而逐渐转型的。技术创业之技术外包,让技术卖出价值

而工作室呢?也帮别人搞项目,也有自己的产品(走进韶院)。

个人觉得走这样的一条创业之路,像他说的那样比较靠谱,资金流丰富,能够自己养活自己。可以给兄弟们足够多的、短期的工资和奖金

如果工作室处于这种状态,那我们需要注意什么呢?

  • 打造属于自己的类库,减少重复的工作。做多了项目的人会发现,核心是不变的,变得更多的是界面部分,那为什么不进行封装,供大家一起使用呢?以后做其他项目就可以直接引用,而不必要进行粘贴,复制。
    这里我会牵一个头结合最近当新人中使用公司的类库进行打造一个,欢迎大家加入。

继续说说类库这些事?

其实:我这里的类库并不是简简单单的几个工具类,或者一两个酷炫的自定义view这么简单的。这里的类库相当于自己搭建了属于自己的开发框架。怎么使用缓存(内存,磁盘),网络框架(原生,还是为retrofit封装多一层?)。这时你将成为一名设计架构者,只要架构好了,以后别人用你的开发框架去完成对应的事情,想想都兴奋

开发框架需要设计什么呢?(结合最近所了解的)

  • 网络层:你是使用原生的httpUrlConnection,还是现今比较流行的Retrofit呢?
    虽然提供了网络对应的处理类,但你要做的是对其封装多一层。如:设置对应的http头,timeout设置等,而不是直接使用act类中直接调用,等。

  • 缓存层:内存缓存还是磁盘缓存(还需要设置缓存时间).
    对缓存,多看一些开源项目的源码,看明白了,也就要回事,万变不离其宗。

  • 对于内存缓存
    就像我们公司的,就是使用ConcurrentHashMap来设置对应的键值对来缓存。

  • 而对于磁盘缓存
    我们使用的是文件file的形式,但这里需要使用到的知识,因为多线程操作的时候,需要对读写进行控制,公司使用的是:可重入锁ReentrantLock进行控制。

  • 线程处理:这个也很必要,基于android的处理机制,耗时的操作都不可以放在UI线程做。
    那么我们就需要频繁的使用线程。

学过java都知道,对线程的创建是很耗费资源的,那么我们是否可以对线程进行回收重新利用呢?
当然也是可以:使用线程池

或许,你会说我使用Handler来处理的。

其实它的内部也是一个常驻线程,不断地向messageQueue进行读取,并执行对应的操作,而这个messageQueue相当于一个请求队列。最简单的是否可以将Handler添加一个static,而不是在每个需要用到的地方进行new一个出来。

这里扯到了请求队列,你是否考虑到一种情况:

多个页面进行网络的请求,如果不维护一个网络的请求队列的时候,多个请求在多个线程中执行而到了cpu执行结果是来不及处理完,而你却关闭页面或者跳转另一个界面,放弃了原先的请求。如果没有考虑到这种情况,没有及时进行放弃网络请求的处理,不单单耗费了资源,还有可能导致了异常。

  • 其他:如一些基类,工具类,通用的适配器等。

你可以看到,这些底层的实现,全是使用java(map集合,锁等),其实也就是这样,并没有你想象中这么复杂。关键是在于能否活学活用

一旦搭建好框架,接下来怎么做。

  • 对于老成员:

事物不断的更新,时代在变,人也在变。总有一种感觉,看回自己之前写的代码真是惨不忍睹。
所以,对于老成员需要做的事情就是重构。对于重构这件事,并不是重构一次就好了,而是不断的进行迭代,从1.0,2.0...不断的改变,不断的更新代码库,使用最新的网络方案?图片缓存方案等。

就比如:当初ImageLoader火遍了天下,每个都使用ImageLoader进行加载图片,而今天却别facebookfresco代替,如果不跟上技术更新,难免会被抛弃。我们需要时刻保持灵敏的嗅觉。

另一种情况:鱼和熊掌不可得兼,对于多种图片缓存策略的选择:imageloaderglide,fresco等,它们在针对不同的情况下,有不同的优点,而你是否对这几种缓存方案进行兼容,是否使用工厂模式进行封装来应对不同的需求?

  • 对于新成员(这是进入工作室后就必须做的)

最近我也是新人。做的工作就是熟悉最新现有的开发框架,并进行重构他们的1.0版本的甘豆影评。这个应用比较简单:就是一个电影列表页,点击进去为对应的详情,可以查看评论,图片的剧照,可进行分享,第三方登录等。1.0会使用比较老的listview,现在要使用recyclerview等。需要做的是:使用现有的开发框架(2.0)去重构这个app。有问题的话,就及时提出。通过这个项目进行上手,熟悉开发框架,为以后其他项目的开发做准备。

结合工作室的情况,对于刚进入工作室的成员,可能他们在第三轮的时候使用的实现方法参差不齐,而进来后就必须进行规范,所以个人建议就是使用工作室的类库,去重构他们的项目,来达到目的。

这样做有什么好处呢?

  • 可以很好的对接项目。

对于新的小项目(老师的项目),在老成员的眼里,或许就是该几个界面的事,没有什么技术含量,但是却免不了所耗费的时间。个人觉得不如将这些时间放在重构或者提升自己的能力上
我们需要将这些事交给新成员去做。在眼中认为简单的事情,在新人的眼里或许就是挑战,用心去做,让自己更加熟练,是一种提高。并且还可以得到相应的报酬。(回想当年,第一次拿到资金上的报酬,还是很让人兴奋的。)

  • 学习的重心进行转移

从一个使用者转化成一个设计者。就如上面所说的,把重点放在重构开发框架和提升自己的能力上
不要小看这个开发框架,他需要很多的基础知识:锁,同步问题,网络问题,并发问题等。而这些相关的知识,上课也有讲:计算机网络,操作系统,设计模式等。通过复习这些知识,再到运用。这对于以后校招也是一大的准备工作。总之,就是有利而无害。
这里举个例子:

在使用缓存的时候,如内存缓存,是需要考虑使用LRU/LFU算法呢?如果不考虑算法,那么只会将使用的内存越来越多,显然不可这么做。

最后题外话

这里再次建议大家去看官方文档,不要跟我说英文不好,都是借口。觉得这种技术文档,词汇量虽然会不常见,但来来去去就这么几个,耐心看,总是能看明白的。再不行,去看别人的译文吧

  • 多看书。之前比较目光短浅,认为网上的资源这么多,博客,官方文档等等这么多,为什么还要花钱买书看。

自从花钱看了《APP研发录》后,深有体会到看书是缩短你去百度,谷歌的时间。看书或许不能说带你走捷径,但是可以带你少走弯路。相对于博客,很多的博客对于某个知识,他会以自身的学识为出发点,只针对自己不懂的做为总结和记录,(对于我而言就是这样),对于这种情况,可以说是被过滤过的知识了,有人看的明白,有人看很久才明白,还有人看不明白。而书的话,都是通过作者的精心编制的,不断的修改,做到详细到位,目的就是让所有人都明白。所以,建议大家多看看书吧。

最近一些工具的使用推荐

使用这个以后,以后对于网络请求,只需要在这里实验成功后,再到代码上集成即可。

设计图(按xhpdi图片)出来后,把对应颜色,控件的距离交个程序员去做,自己去测量,减轻设计者的负担,让更多的时间花费在设计和交互,考虑需求上等。

这个也是减轻设计者的负担,这些工作都交给程序员做。也就一个插件,点击几下的事情。

最后说一句,看了不做然并卵。

以上仅仅代表我的个人观点,吸收好的,摒弃不好的。想一起打造这个开发框架,请跟我联系,到时组个群。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    X先生_未知数的X阅读 15,937评论 3 118
  • --------------自我认识:高估自己、轻易承诺 周一早上,突然收到静静发来的 微信 静静:Anne,你们...
    Anne大叔阅读 388评论 0 1
  • 最近的人生起伏有点大,我终于明白不再去追求什么的时候人生会变得平和些。 人啊,一旦有了想要的东西就变得不像之前的自...
    百事可爱哟阅读 177评论 0 1
  • 好像自打我们明白事理起,我们的意识中就无时无刻不存在着一个“标准”,这个标准或者是给自己订立的计划、目标,或者是和...
    YNM解说阅读 487评论 6 3