加载中 ...
首页 > 新闻资讯 > 经验心得 正文

经过十年的发展,我总结了这些发展经验

2019-07-13 01:47:31 来源:沈阳小程序开发 作者:沈阳软件开发

经过十年的发展,我经历了网易,百度,腾讯研究院,MIG等多个地方,并开展过3D游戏,2D页面游戏,浏览器,移动翻译应用等。

累积了一些感受。必须有一些仍然天真的地方,所以让我们谈谈玉和聊天。

一、对于团队而言,流程太重要了

行进,你需要一个指南;如果你没有导游,你需要一张地图;如果你没有地图,你至少应该学习何光并找到一条知道路的马;如果你甚至没有老马,那么你可以有三匹。走私者进行了很好的讨论,试图击败诸葛亮;如果三个走私者甚至不能讨论它,那就是典型的暴徒。最好在编写代码之前写出气味的香味。再见,然后崇拜谷歌。

我个人属于一个温柔的个性(大多数程序员都有良好的性格),但我看到了一些强势的人,并说了很多强硬的话。从技术角度来说,当您听到任何异议时,就会出现个人不满。这种风格,无论是仅供个人使用,还是经过深思熟虑,都需要谨慎判断。

为什么这个过程很重要?事实上,如果团队中有一个孙悟空,去西方学习它,可能不需要任何过程,只要方向就够了。但作为一个普通的战士,你应该首先考虑失败。在寻找算命的人时,你应该先听听不好的地方。如果你没有一个好地方,你就不必听。这总是好的。如果你没有坏地方,你必须倾听。

这是我的态度:首先是悲观,画出底线,考虑你应该在这个底线上做些什么?

这是我养成的习惯,但这种习惯绝对不适合买房子。

如何绘制底线?想象中的团队没有孙悟空。这取决于你唐玄珍,猪巴杰和沙僧,如何学习。

这个月走什么地方,遇到山怎么走,遇到河怎么过,遇到路上有妖怪劫道,谁去抵挡。遇到路上有少女要搭救,怎么办?这就是流程,是原则。

我经历过一个流程很混乱的阶段。都是很多年前的事情了,可以拿出来说说,不涉及单个人。

2011年在百度浏览器团队时遇到几件让人影响深刻的事情。有一次开会,产品拿出谷歌某个产品的DEMO,里面有一段很酷炫3D效果,要求开发加上,只给2天时间,大家目瞪口呆后续的开发为了赶节奏,导致非常多的错误,又为了修改错误,领导者将所有的错误按照人员平均分配,导致不同模块间的同学相互修改.实在。难以想象。好比让做花卷的厨子,去修改西湖醋鱼的味道。

最初的现象是:错误下降的慢,延伸错误反而增加,每个人都累的半死,代码风格极其杂乱,为了赶工导致的临时方案层出不穷;

到了中期:人员离职越来也多,代码难以维护,新加的需求与之前的临时方案冲突

到了后期:想做一些修复,想调整架构,又要保证正常运行,其难度好比在一架飞行的飞机上拆换零件

然后我也急忙离职了.实在看不到成功的可能性。

后来到了腾讯的团队,感觉流程就规范多了。需求和错误有TAPD跟踪,产品发布按照节奏,需求提出前会和开发反复讨论可行性,有专门的质量跟踪,有专门的用户反馈,每天知道要做什么,也知道明天要做什么。有产品需求,也有开发需求!这个非常重要。很多团队,都是只有产品需求,开发好像牛一样,耕完地就不管了?

XX 这个过程实际上并不那么复杂,它是每个部门的责任和节奏。我们都是“Sui Rui Mi Fu Sola Xi Duo”的成员,每个人都有自己的责任,然后结合起来以节奏的方式运行。设置要做的事情和跑步的节奏。

二、不要炫技,老老实实写代码

互联网上有一段说有人想用JS实现一个简单的功能,然后朋友推荐他几十个库。

真的有必要吗?具体分析具体情况。

住在家里,你只需要一套普通的工具;如果你正在修车,你需要一个修理汽车的工具;如果你是一个光头,你需要一个傻瓜。吃筷子,用刀叉,你可以,但不要用猪刀,不要用长矛!当然,你不能用牙签。

使用什么工具,使用什么库,让人们过来并在KM上搜索更多内容。例如:android加密,可以使用SQLChpher,也可以使用微信,你当然可以学习;数据库ORM创意,在KM上使用推荐的GreenDAO;可以使用PC 3D引擎,OGRE;小游戏演示,足够与Irrlicht;使用ThreeJS编写WebGL。

首先考虑一下:一些大型图书馆如何实现,后续开发是什么?这些库对安装包的容量有多大影响?你有没有调查过同一产品的用途?

如果您想知道要决定什么,最好跟随成功项目的脚步。

三、架构上实用+适用

我非常喜欢曾国藩的话:结村,乞讨尴尬。

一个长蛇阵,八个金锁阵,哪个更好? iOS是单个进程,微信Android版本3.5是3.5之前的单个进程,3.5之后有独立的网络进程; PC浏览器的流程架构比较复杂,UI流程,内核流程,渲染流程,还有根据页面数量的流程调整模型。

这些设计非常好,每个都有自己的含义,适合当前的产品。所以我的观点是:首先分析当前产品的大小和性质,然后设计架构。

在现阶段:发展效率+架构平衡;并向后看3个月,或大约半年,看看架构是否可以适应。

当我是腾讯翻译时,我一再犹豫是否模仿微信加入一个单独的网络进程。后来,有一个竞争产品排名第一和第二,最后采用了目前的主要功能单一过程模型。

产品规模,人员规模,功能阶段,具体问题具体分析。

四、既要有攻城之力,也要有熬战之气——BUG

产品开发完成后,必定存在错误。事实上,开发人员在工作过程中有一定的直觉或心理预判,即:功能模块的质量。这里的质量包括:可维护性,可伸缩性,算法\渲染效率,以及错误和崩溃率。

功能开发完成后,有必要开始保卫城市。

部分错误是由体系结构引起的,例如更复杂的体系结构,这会导致复杂的实现细节;

但是仍然存在很多错误,这些错误实际上是基于以下三个原因生成的:

1.我不知道api,或者我不知道平台或SDK版本。例如:在andrid里面的nonrid主线程,不能直接处理与UI相关的东西; JAVA内存释放不是绝对的,相互指向无法释放;函数的数量受DEX问题的影响----- ----------------这些错误的出现也是开发人员学习和学习的过程。一旦他们经历过,他们就不会再犯了。这是一个广度和学习能力的问题;

2.粗心大意还有一些错误。例如,空指针的问题,野指针的问题。在C的开发中,狂野指针的问题,GDI句柄的释放,这些都是严格的代码要避免;而一些工具或方法可以规避这些问题,比如在@Nolable中使用@NonNull增强方法,如空指针检测;

3.仍存在一些由“不同用法”引起的错误。例如:即使现在模块崩溃了。这里的本质是因为异常的逻辑边界处理得不好。例如,android上的OOM问题,以及UI引起的对象释放问题集中在PC上。其中一些异常依赖于测试,一些依赖于用户反馈,一些依赖于他们自己的异常处理。例如,Android中的try catch机制实际上遇到异常,您可以纠正错误的可能性。

五、自审

每当我不得不站在天空瞧不起自己时,问:它是在过去还是将来?

如果以前代码的质量不好,将来有更多时间来修改问题。在开发过程中,更多地问自己,你不断纠正以前的错误,或正在做新事物。如果您有更多时间来纠正错误,您应该注意自己代码的质量!

六、注释

我真的很喜欢写笔记。有一头大牛说:代码是最好的评论。不幸的是,我还没达到那个水平。所以,我会非常清楚地写出评论。一:为了方便自己将来的维护;第二:为方便他人接管。

这就是我在Jun项目的翻译中写笔记的方法。 1:对于非常复杂的逻辑,请务必按12345的顺序写清楚; 2:对于函数中的参数,您需要解释为什么要设置此参数,尤其是实用程序类中的函数---说参数背景的含义可以使其他调用者更清楚地理解。

我一般不用英文写作。虽然看起来风格很低,但每个人都可以轻松理解胜利。写代码不能太骄傲,写笔记不应该太骄傲,目的是让你的伴侣或接管,更容易理解,让她/他少加班。

七、代码结构

代码结构应该清楚。根据UI结构,根据划分有功能。还有实用程序类,数据管理和主逻辑控制。无论您使用哪种想法,有序的代码结构都可以让每个人都感觉非常干净。例如,日本的存储和整理技能使许多小资产阶级受到尊重,只不过是干净,整洁,易于管理。

此外,还有一个重要的好处:代码结构实际上是——程序的模块\逻辑思路——让每个人都在不同的领域工作。

八、代码风格

代码风格统一!像一个家庭,有汤姆,有叫安东尼,而且还有流川风,史天天,圣杰夫拉斯基,无处可去。理论上,在查看函数时,您可以按名称区分成员变量,这些变量是局部变量,哪些是全局静态值。

除了命名一致性之外,还存在一行代码的最大宽度,函数的连续调用长度等,并且头文件的包含样式也优选地是约定。类的出现时间,即创建的人的名称,最好添加,似乎没用,但是当谈到跟踪问题时,您可以看到时间轴的好处。

九、安全与逆向

这适用于Android,还需要考虑PC插件。必须首先防止Android被其他人反转。我成功地逆转并重新包装了第一和第二个竞争产品。这看起来有点令人难以置信,但确实如此。最好加强+混淆+代码判断。

安全性,您可以查看金刚扫描的漏洞,并逐一修改。该公司的许多工具都非常有用!

十、开发效率

通过以下方式可以提高开发效率:

1.构建一个供每个人使用的实用程序类

2.使用一些开源软件包,例如ORM思想数据库等。

你可以快速找到问题所在。在开发中,发现错误的时间通常很多。我有三种方法:使用try catch;拦截所有崩溃到我指定的沈阳软件公司

ad.jpg

地点;很多Log,Log都有统一的控制开关。

4.杠杆:使用灯塔进行数据报告,使用bug进行崩溃报告,在公司KM上获得大量经验,并将其接管。

十一、安装包体积

1. TINY压缩图像

2.删除无效的资源文件

十二、UI渲染效率

UI是用户的第一感觉;用户界面快速稳定,第一感觉也不错;管理内存,基本管理是崩溃的一半;管理UI等同于管理人机交互体验。

UI的开发是:渲染效率和渲染效果之间的平衡。

非常匆匆写,必须有一个非常天真的地方,欢迎斧头。

“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。