HTML5技术

技术人生的职场众生相 - 十多年的经验与心得 - 灵感之源(3)

字号+ 作者:H5之家 来源:H5之家 2017-07-16 17:10 我要评论( )

数据从用户在界面输入开始生命周期,经过传输到达网站,经过处理(譬如ETL),再存到数据库,后续还可能有数据仓库二次处理等,最后数据失效被删除。这中间很多事情需要做,但,最重要的第一步,是确保用户输入是校验

数据从用户在界面输入开始生命周期,经过传输到达网站,经过处理(譬如ETL),再存到数据库,后续还可能有数据仓库二次处理等,最后数据失效被删除。这中间很多事情需要做,但,最重要的第一步,是确保用户输入是校验过的合法数据,否则进入系统后造成连锁反应,修复成本太高。

 

我服务过的很多公司,界面输入缺乏基本的校验,譬如长度,用户输入长一点就爆了。邮件格式也不判断,系统发送邮件的时候各种爆。

 

公司S,系统设计有问题,实现有问题,运作有问题。拿各种通知客户的定期报表邮件,地址完全不校验,同一个客户出现几十种的邮箱域名,譬如正确的是foo.com.au,实际出现:foo

coma.u, foo.com,foa.com.au, foo.com.....,一些明显是不合法的格式,一些是不存在的域名,等等,发送的时候也不校验[摊手]

 

公司X,系统各种安全漏洞,SQL注入轻而易举。

 

遇到过各种奇葩软件/系统设计,譬如LinkedIn Android版,经常告诉你无法发送内容,不告诉你为什么,之前打的长长内容都丢了,根本草稿等临存功能。一些银行的app,允许你增加、减少每日转账额度,但根本不告诉你要增加到多少或者减少到多少[摊手]。

 

公司S,现有的系统10多年前开始写的,技术陈腐,其中一个功能是根据不同客户不同产品从可自定义模板那里动态生成表单,这个功能是用的第三方的,本来不复杂,但随着业务发展,现在单纯渲染界面的代码行超过10,000。我在用angular改造,目前代码行200,可以显示了,接下来就是做一些交互[摊手] 。

 

公司S,Web系统性能差,有几个原因,其中一个,是HTTP压缩都没有启用,页面/资源加载都要用较长时间,我发现之后,顺手启用了[摊手]我司的Web系统性能差,有几个原因,其中一个,是HTTP压缩都没有启用,页面/资源加载都要用较长时间,我发现之后,顺手启用了[摊手]。

 

公司K,系统的数据库设计很多奇葩的事情,就命名这块就看不下,用户标识(UserId)这个,同一个数据库里有以下各种形式:UserId、UserID、user_id、userid、iduser、USERID、id_user等,而且大部分是同一个人搞的 。

 

公司E,隔三差五发现公司印度菊苣们写的代码好多坑,譬如前端js肯定就不判断对象是否null,直接取属性,然后后续的代码都无法跑了。后端的代码更奇葩,直接try/catch抑制错误(catch无任何逻辑),今天发现一功能无法跑,分析后发现,数据库表字段类型是nvarchar,代码里定义是int,菊苣不解决抑制错误就完了

 

这么多年来,各种平台,看见过各种软件的奇葩实现。

 

公司Z,现在的业务系统,一个复杂的申请流程,所有数据都暂时保存到cookies,今天终于爆了,客户的一个下单JSON后超过4k,boooom!

 

写烂代码的人多用旧版本的语言,这样他们就能名正言顺地不用新版本的语法糖来精简代码。譬如c的自动属性,expression body、LINQ等,他们都不会用。更恶心的是重新发明更烂的轮子,数值TryParse、DayOfWeek等重搞,最恶心的是压制错误:一个对象几十个属性,不判断null,几十个try/catch逐个属性轮 。

 

公司A,数据库这块,因为某GIS产品Web服务的特点,把数据库分割为:每个客户3个数据库,然后呢。。。然后服务器就几十个数据库。。。。其实做到一个数据库是没有什么难度的。。。。可以预见以后各种血泪 。

 

公司A, 开发这块。。。之前弄过Windows Mobile,后来用Sharepoint(怨念!) + Silverlight(怨念!!)。。。。。加上某GIS产品+.NET插件(啊啊啊),现在在上马#WPF#(怨念!!!),然后准备招聘iOS开发人员和Android开发人员(啊啊啊啊。。。

 

公司A, 做的产品主要是基于GIS的产品,给服务人员提供地理任务标注/指示,然后开展工作。然后呢。。。。#没有自己写的服务器端#,#不直接存取数据库#,完全用某GIS产品提供的Web服务。。。。然后性能各种爆。。。。。。。

 

公司A,是典型的传统使用微软产品的企业,IT/基础设施这块都是AD/exchange server/SCCM等,最近弄了个JSP写的helpdesk系统,所有东西都往那里扔,连新产品/新项目/改进都放那里,还包括bug管理。。。

 

公司B, 系统是Web应用,引用了大量的第三方Web前端代码,超过2500个JavaScript、CSS文件。。。。每次发布要等好久好久。。。其实绝大部分都不需要用到,就是硬度码农买1送10地狂塞进去,而且grunt build那套也不用,打开首页的时间都够我去找菲律宾妹子了

 

公司B, 相比上一家公司,这公司的产品状况要好很多(尽管很多问题)。上一家公司的产品我接手之前只是基于第三方产品做扩展,完全不是自主知识产权,午饭商业化,我从头写,大半年完成,比第三方产品还好很多功能多很多。好歹现在的直接自主产权,技术较新,但坑多。

 

公司B, 这公司是和这行业的领先者之一合股搞的SaaS解决方案,软件+硬件结合,市场很大,不过,合股公司总部就是仓库,大家绕着会议桌开发,旁边的沙发坐了一堆五湖四海的合股公司员工吃各种风味的午饭。。。新公司的工作场所还在装修,隔壁,其实还是仓库改造。。。

 

公司B, 需要使用的第三方系统,其市场占有率超过50%,但用的Visual FoxPro开发。。。。。。。。因为官方没提供API,我们的玩法是直接逆向工程数据结构然后自行山寨业务逻辑玩弄数据。。。。。、、

 

公司B, 8个硬度码农(已经炒掉5个)做出来的web系统,后台ASP.NET MVC+nhibernate。。。每个controller都automapper create一次map。。。还直接数据CRUD。。。前端angularjs,每个controller直接http req。。。各种null ref问题。。。

 

公司A, 我发现了,代码的质量很差,主要原因是:大量复制粘贴、反复操作(譬如反复的获取同一个值做而不是读一次做变量)、冗余的循环、没有使用较新的语法糖(譬如lambda)而自行弄10多行代码实现一行LINQ搞定的、很多情况都没考虑大小写敏感,强行catch异常而不是判断

 

公司A, 入职一个半月,发现前任挖了很多很大的坑,一些短期内无法填,一些长期也无法填,怎么办?逐步填,一天填一个呗。

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Vuejs技术栈从CLI到打包上线实战全解析 - 万里秋山

    Vuejs技术栈从CLI到打包上线实战全解析 - 万里秋山

    2017-06-28 15:00

  • 架构师之路--搜索业务和技术介绍及容错机制 - 静儿1986

    架构师之路--搜索业务和技术介绍及容错机制 - 静儿1986

    2017-06-26 12:00

  • 微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理) - 风中程序猿

    微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服

    2017-06-24 18:00

  • 2017年前端框架、类库、工具大比拼 - 葡萄城控件技术团队

    2017年前端框架、类库、工具大比拼 - 葡萄城控件技术团队

    2017-06-20 12:00

网友点评
s