第二篇:我作为一位开发人员,确实在走弯路,你也有可能喔!

2020年下半年,我出来创业,创的是呕心沥血,经济血崩,收入断崖式颗粒无收。

项目压力,经济压力,团队压力,家庭压力,反正各种压力,我只能呵呵一笑,继续努力。

2019年,我接了一个商机,是迁拆办的一个项目,要做合同收款管理。我就定制给

客户做了一个BS网站管理系统,关于合同管理。当然,不是我的客户,是合作伙伴的客户。

说句丢脸的话,从我做开发开始,从来没有完整独立做过一个比较复杂的BS网站项目,而且

还能自我认可满意的。这是为什么呢?因为网站开发,其实也是很坑人的,对于开发者,

最坑的一件事情,就是我不会美工设计啊。没有美工设计,我没法独立完成一个完整的开发。

这个项目工期是45天,我愣是做了3个月。从无到有,去做一个项目,时间周期就是极大的

风险。时间周期长也代表服务质量没保障,也代表自己的收入也难啊。

以这个项目为原型,我后面用这个项目做了一套ASPNET新人教程。再后面,我再下

一个项目决心继续完善优化。这个时候,还没有创造产品的想法。

2020年,也不知道是啥时候,也许是下半年,我心里有了打造一款开源ERP的想法和

冲动。然后也开始留意变得想了解开源协议的事情,等到很年底了,我才去专门查了下开源

协议,选择了MIT协议。这种协议对他人的要求最宽松,随便人也都可能拿去商用,没有风险。

著名的JQuery就是MIT协议。还有很多一些插件也是MIT开源协议。选择开源或商用,这种做

选择题,老实告诉你们,都是要接受灵魂拷问的!是灵魂拷问啊!林枫山,你真的是毫无私心

的利他?还是带有私心???拷问完了以后,做出选择,就是MIT协议,希望这是一款全人类

的产品,而不是属于某个人。

扯了这么久,其实,我还没有扯到正题。然后,我就开始打磨这款产品了。优化现有代码,

设计更多功能,开发完善更多功能。首先是Model层,我没有使用自动生成Model的工具,手动

建很麻烦,有打算自己开发一个自动生成Model功能。后面考虑项目时间性,暂时搁置。

我在做教程时,已经感受到每个DAL层的函数命名不同,重复工作量很大。我在这次进行

优化了。比如原来添加用户,我会命名为AddUser,现在所有的添加操作,统一叫做AddRecord。

这个我到时候放在《开源项目手札》系列里面,对开发过程经验和灵感的总结,感兴趣的,可以

自行去看。这个《开源项目手札》其实也是今天我刚设定的,我怕不及时写出来,久了就忘失了

当初哪些灵光一现的设计解决思路。现在总结分享出来,也许对别的技术员也有帮助。毕竟,吹

牛皮说出去,我这是大型开源项目经验,突然感觉自己也很牛的样子,可以出去骗骗面试官了。

再后面,我把Model层的数据类型,统一改为String类型,减少工作量了吧。哈哈!让你们

傻傻的都长一个样,减少我开发工作量。另外,回答一个,我在做ASPNET教程时,关于aspx和

cs文件为什么要分开放置,现在想通了,假如你多人协作开发,这两个分件分开,有助于给美工

设计人员只看到aspx页面,减少不必要的复杂性。就是开发和美工设计人员分开面对,开发面对

的是aspx和cs。美工只要面对aspx。

有小细节,也有大问题要面对,权限管理怎么设计,模块功能都能定制化怎么设计?表单设

计器和审批流如何实现或选一个开源组件整合?使用开源组件,要先看开源协议?商业授权组件

尽量不要使用,最好不用!

主键内码提前流水号化,再插入数据表的主键字段,而不是用自增主键,这两者有何区别?

在遇到特定场景时,就能理解区别。平常看来感觉多此一举。比如计量单位功能,勾选基本计量

单位时,计量单位换算=分母*当前单位 = 分子* 基本单位,要求当前单位和基本单位,保存的都是

当前正在添加的单位。但是,问题来了,我当前记录都还没保存,哪来的单位内码,提供给这两个

字段。 做法有两种,一种提前内码流水号算出来,然后就可以赋值。另一种做法是插入数据后,

在更新这两个字段。第一种比较简单操作。

随着,开发的深入,将要面对和解决的技术问题越来越多。那假如我不开发这个产品呢,按照

某些人说直接使用某个现成开源的产品,省事省力。

我现在引出本篇的正题,平常我们开发,参与项目也不少。但是,技术提升还是蛮难的。开发

技术的提升很有意思,越是往后,为了提升一点点,要付出的努力是十几倍,甚至几十倍。但是,

技术员这个时候已经不想进取了。所以,很多技术员技术是停留的,原地踏地,或者非常缓慢进步

一点点。想要升阶很难。特别现在开发分工越来越细化,每个人越来越像螺丝钉。

有些人只能在小公司,做小项目,得不到足够的锻炼,也接触不到大项目的技术,获得不了

大项目的技术经验。如果是技术架构,那更是少数人参与的游戏。进到大公司的,至少是机会多了

很多,如果分工很细化的情况下,有时候也很难提升到很核心技术员的水平。但是,至少大公司的

技术员机会多一些,进取比较容易,进取心也比较强。

像我这种五流的,不要说大公司,稍微有点实力的公司,都看不上我。结果造成,我每次找

工作很悲催,第一个厦门软件园的工作应聘总是失败的。第二个投递简历的,要么都不打电话通知

面试,要么都是面试失败。只有那些你不投递的,反而打电话通知面试,还能成功通过。但是,公

司实力大多是一般般。至于猎头,那就不要讲了,高攀不起,人家眼中根本没有我这号人物。

很多像我这种混的很差的小技术员,也没实力进大公司,因为我自己其实也没有进入软件行业

的大公司,所以,具体不清楚怎么回事,只能意念揣测,也许也可能就那样子。我觉得十有八九都

是妥妥的走弯路。弯路在哪:为了引出这个,我讲了一大堆无关紧要的注水文字。没有平台,你很

难成功在技术上突破和逆袭。但是,你也没有入场券。这个时候怎么办?答案来了,你要自我创造,

自己创造自己成长的平台,你有两种选择,第一种你要自己创造研发一个产品,不断深入去完善扩

展他。至于有没有实际用处,这个结合个人工作和事业经历,但是你一定要有产品底蕴和积累。或

深入参与一个大型的开源项目也是可行的。第二种做法,研究一个开源框架,做到把他的内核吃透,

然后,做到你自己也能开发出一个开源框架的内核。这个是起手式,至于将来你能发展怎么样,那

说实话,看个人运气和机遇。

如果你没有这种思维和实践,开发技术上,你将很难走远。我在上面讲了那么大段自己做产品

经验,是不是很多深入设计和开发技术,都是做产品以后才遇到突破。平常做项目都很难遇到。你

想想我设计的一款大型ERP产品,既要ERP领域设计,还要面临财务领域,技术解决方案。由于是

大型软件产品,连一些基本的概念,都要设计。比如是叫分类,还是类别,还是分组。如果不统一,

就会很混乱。还有再举个例子,比如单据状态上,禁用状态的枚举值,你是叫启用、显示,还是叫

未禁用、已禁用。资讯功能,你就不能叫未禁用、已禁用,这个再单独设计一个状态叫发布状态,未

发布、已发布等等诸如此类。但是,平常项目开发,跟产品设计比起来,还是太浅了。很难应用到

更深入的技术。最终,导致的结果,你项目做的很多,产品积累一塌糊涂,几乎没有任何积累。技术

底蕴也不行,因为你缺乏在一个平台深入开发挖掘的经验和技术。这种弯路有时候一走就是十年八年。

我是今年开发ERP产品,才意识到自己之前的十年开发全部走弯路了!代价是十年喔!你打算弯路走

多少年?

比如,以后我在产品上要应用人工智能的技术,我势必会深入研究人工智能技术,并应用到产品

上。还有大系统如何敏捷开发,缓存技术,数据量大的情况,如何做数据分割优化,数据溯源等等设计。

来源:https://www.icode9.com/content-4-862251.html

(0)

相关推荐