我的服装DRP之开发感悟

简介: 先向各位拜个晚年。 今年过年期间都在想DRP的事,很多朋友也联系我,讨论技术问题的、谋求合作的、分析行业前景的、让我提供源码和数据库的都有。再次谢谢朋友们的关心。目前来说,在修改系统bug的同时,我打算重新找一份工作,毕竟在能力转换成财富之前,生活还是要继续。

先向各位拜个晚年。

今年过年期间都在想DRP的事,很多朋友也联系我,讨论技术问题的、谋求合作的、分析行业前景的、让我提供源码和数据库的都有。再次谢谢朋友们的关心。目前来说,在修改系统bug的同时,我打算重新找一份工作,毕竟在能力转换成财富之前,生活还是要继续。

Winform or WPF:

今天在QQ上和一位山东的朋友聊了会,其中聊到BS和CS的老生常谈,说道有些功能BS不好实现。我认为两个事物孰优孰劣需要放在特定场景中才能比较,关于这两者的区别谷歌一下即可,我就不分析了,徒惹板砖。其实同样是CS,具体的UI框架也包括很多,在.NET中主要就是winform和wpf,前几天就看到一篇文章关于开发WPF的一些感想,作者提出:为什么到现在都没有客户端的WPF系统?在如今WEB化和移动化大行其道的情况下,windows桌面程序开发的价值又有几何?说实话,我也心存同这位博主一样的疑虑。对于这两个问题,每个人都有自己的看法。我认为相似的几个技术有个先来后到的“优先级”,试想,假如wpf和winform的出现时间换一下,再扩展一下思路,假如当初C#和Java这两种语言同时出现在大伙面前,假如HTML遵循XAML的语法……世界会是什么样子?所谓的市场占有率通常并不能比较出技术间的优劣(没有贬低谁的意思),只能说声:抱歉,哥比你先到。

单纯对于行业软件而言,在winform和wpf中选择,我偏向于wpf。如果非得选择winform也可以,不过最好给我提供一个winform实现框架,这个框架需要包含以下三点功能:

  1. 支持源数据更改通知反馈;
  2. 支持路由的Command;
  3. 易用的界面设计功能 

架构设计:

工作多年,接触过许多编码界的朋友,其中一些高手对OO的理解可谓已入化境,没事就抽个接口玩玩,调试他们程序的时候永远只能看到黄色小箭头在浩瀚的代码海面上跳跃,要想一探究竟,对我这种菜鸟来说只有淹死的份。记得我刚参加工作那会,参与开发一个简单的会议管理软件,项目经理给我展示项目架构,说这是当时最流行的架构设计。我猛地一瞅,顿时有种膜拜的赶脚——那庞大的项目,那众多的类库,那抽象,那反射,那配置,一看就很高级哟,我估计没十年八年是理解不了的,差点还动了转行的念头。项目经理意味深长地拍着我的肩膀,说慢慢来,会明白的。可是我最终也没能明白。

我不明白的是为什么数据层要有个接口,他们跟我说为了支持多数据库,虽然现在只用到SqlServer,保不齐百年之后要切换到Oracle;我不明白的是为什么业务逻辑层也要接口,他们跟我说可能客户会经常改变需求,虽然需求改变常常导致改变接口本身,不过这是OO的原则,你纳闷说明你理解的还不够深;我不明白的是为什么要用工厂方法、抽象工厂方法,他们说这叫统一标准,虽然大部分接口都没有第二个实现类;我不明白的是为什么这看似高级的架构没有给开发者和用户带来良好的体验,他们说加班还不够;……

一年以后,我离开我的第一家公司。跟同事们告别的时候,我们都看到了各自心中的郁闷,这是长期作战的结果,而敌人是由我们自己制造出来的。

我还碰到过另一个极端,不是说三层么,做啥项目都只建三个类库,对应数据层、逻辑层、UI层,最多加个实体类库。你想要个通用类库,门都没有。

后来,我把QQ签名改成“设计,是一种美,就像盖大楼,如果每座房屋都是千篇一律,那么也就不存在架构师了。”,这是从某博文上复制下来的。虽然这句话并非那篇文章的重点,不过当时看到这句话的时候,我感觉到了共鸣,压抑已久的心灵终于得到解放,忍不住出门打了三斤白酒站在阳台就喝了起来。

开发效率:

原本我打算连着生产系统一块开发,后来想说先把分销稳定了再说。开发这套系统,至今经历了5个半月。想起当初我的4人团队一个半拉子系统都要搞几年,我惊异于自己的效率。本系统完全从0开始,所采用的框架也非我原本熟悉的,只不过在业务需求上借鉴了行业经验,但也增加了很多实用功能。若一个普通团队开发,我估计要在相同时间内完成几乎不可能(何谓普通?并不大的软件公司的项目团队)。也许你不会赞同我的观点,那是你没有经历过文档流于形式的“赶鸭子上架开发模式”。

这套系统首先大规模的系统重构就有4次,这对我来说,也就咬咬牙的事,但对一个团队意味着繁琐的沟通、重叠工作的分配、不满情绪的滋生、冒出的各种bug、疲劳的重复测试、责任问题、文档更新等等,以及上述负面效应的多次“迭代”。

对于分配给A的任务,你不能保证A完全按照你的想法来,即使功能实现了,你也得检查看看有么有影响运行效率的语句,特别是对能力不足的成员,尤其提心吊胆。在实现难点或功能点较多的模块,通常难以在一开始就明确知道采用何种方式,往往花四天时间构思,两天时间编码,在编码过程中会重构个好几次,这需要编码者有足够胜任该项任务的能力(而一个普通团队中很难有几个相当优秀的程序员,而技术主管又不能事事亲力亲为),有时候还得其它模块配合,这又牵扯出上述情况了。当某处需求实现了,尽管代码看上去并不十分完美,为了“顾全大局”,也就这样吧,甚至优良代码要向劣质代码让步。

若有原成员离开或新成员加入,稀奇古怪的编码风格会让相关成员抓狂,编码风格可以强制规范,但代码逻辑时不常地出现理解偏差。当系统终于成型,呈现出来的很可能是个臃肿的胖子,因为每个开发人员按自己的需求写的帮助类代码,很多都是重复的,更不用说隐藏在各处的私有可抽离代码。这无疑增加了后期维护的成本。

团队开发过程中,有规范的文档会好很多,此时文档就相当于整个团队的大脑负责信息存储的存储区,而成员间的沟通赋予了新的含义,那就是团队思想的源泉。不过我并不认为开发文档(如详设)在一开始就必须存在,而是在项目架构等基本上稳定了,再着手编写。说回来,现在有多少公司的文档作为其原本的意义而存在呢? 

创业(?): 

老实说我这还谈不上创业二字,更多的是区别于正常上班的另一种工作方式。若以后能靠这赚点钱更好,否则就当提升下自己的开发能力。我并非做事目的性明确的人,所做的事只是我认为做了并无害处。大多数人都有个创业梦,特别是在IT界,真正去做的寥寥无几;创业并且小有成就的,寥寥无几;创业并且大展宏图的,寥寥无几。这些都不是我的目的,我的目的很简单,多赚点钱,然后做我真正喜欢做的事。 

我一直以为我不是能坚持长久的人,特别是独自一人完成一个产品,特别是在一个结婚生子都显略晚的年纪。车子卖了,存款花了,即使通情达理的父母不会埋怨,即使有热心的兄弟帮着给我打气,却在无形中加重了我心中的负担。毕竟代码的世界里我能依靠的只有自己,每天对着显示器敲着一个个代码,偶尔想到迷雾重重的前景,我就想说:算了吧,安耽地找份工作也有不错的收入,何必逞强呢,一个人难道能比一个团队开发出更好的作品吗。孩提时代伟大的理想,此刻变成对社会几乎无用的“赚钱”二字,百年之后,谁又记得我呢?有时思想如同不小心打开的潘多拉魔盒,负面的情绪倾泻而出,让人极为沮丧。 

令我欣慰的是,我完成了计划的第一步。没有半途而废并最终完成一个可用的产品,感觉挺好。

最后贴个系统截图以供观赏,截图中的数据为测试数据,图片摘自互联网,所示功能使用MVVM模式开发,若采用Winform,没有引入特殊扩展框架的话,估计至少三倍工作量还不一定能完成吧。

转载请注明本文出处:http://www.cnblogs.com/newton/archive/2013/01/20/2868272.html

目录
相关文章
|
数据可视化 定位技术
大屏设计师的躺平小秘诀是____?
DataV7.0 新功能「设计库」重磅上线!—— 无论你是设计师、产品经理、OR被赶鸭子上架的研发,都能快速搭建出风格统一的可视化大屏项目。
大屏设计师的躺平小秘诀是____?
|
人工智能 算法 UED
从直男审美到时尚达人,这群阿里工程师要让服饰行业换个玩法!
从买家搜索到人工智能推荐,消费者离自己最想买的衣服越来越近,未来,FashionAI会让传统服饰品牌的设计、生产、售卖、营销发生革命性变化。
2630 0
|
前端开发 Java Serverless
玩转《天猫精灵技能平台》,搞一个诗词问答小游戏
看了中国诗词大会,必须要自己搞一个诗词问答小游戏。 文章最后还有一个思路,非常简单的思路,大家可以试着去实现一下。
13949 5
玩转《天猫精灵技能平台》,搞一个诗词问答小游戏
|
人工智能 算法 定位技术
《游戏设计师修炼之道:数据驱动的游戏设计》一导读
视频游戏行业在过去十年得到了爆炸性增长,并且现在是家庭娱乐的主要提供者。自从NES(Nintendo Entertainment System,任天堂娱乐系统)于1985年发布了北美版本以来,根据市场研究公司NDP Group的调查研究,游戏行业的收入得到了显著增长,其中2009年在美国的总收入中差不多达到了200亿美元。
1735 1
|
开发者 程序员 NoSQL
滑板、航拍、写小说…你以为是个艺人,其实是支付宝程序员 | 开发者必读(055期)
最炫的技术新知、最热门的大咖公开课、最有趣的开发者活动、最实用的工具干货,就在《开发者必读》!
938 0
如何在一年内从模特转行为软件工程师
Madison Kanna   007 的小伙伴们大多反应看不懂我写的技术文章,对于这点我也很头痛,我写的是偏记录和教程方向的,如何才能让非相关领域的朋友看懂,真不是个简单的事情。
1197 0
|
机器人 机器学习/深度学习
|
算法
算法学习之路|幼儿园买玩具
蒜厂幼儿园有 nn 个小朋友,每个小朋友都有自己想玩的玩具。身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买 mm 个玩具。已知玩具商店一共卖 kk 种玩具,编号为 1,2,3,...k1,2,3,...k,你让每个小朋友把想玩的玩具编号都写在了纸上。
1744 0