关于WEB项目的一点想法
有点失落、迷茫,差点在上班的时候发了火。原因是之前离职的一位同事,在代码里不加注释,而且百般偷懒,致使很多应该的验证没有验证,很多应该考虑到的情况没有考虑。因为是老员工,我相比他来说是新员工。气势上总是差那么一点点的,不敢去质疑前辈们的代码。但是这样下去,项目的质量一直提升不上去,讲他还不能讲,对于整个项目管理来说这样的员工就是一颗定时炸弹。虽然是写了代码,恭喜还能跑,但是这是在浪费公司的资源,也是在浪费同事的时间。这样的代码以后维护起来,是要花费很大的代价的,是非常大的代价。然而现在已经是这种情况了,没有办法,只有错上加错,在慌乱的代码里东凑西补,使得项目更加难以维护。
另外一个原因,就是项目的设计。从公司的管理层面上来讲,管理是基于两种前提的:信任,不信任。在信任的前提下,企业会给足员工的发展空间,让员工去发展。但是就我所在公司与管理层的领导风格来看,是基于后者的。无论是基于信任还是不信任,其实都不是最主要的。就如同人性本恶与人性本善的悖论。关键的点在于,我们公司的产品设计人员是从程序员出身的,这一点就十分有必要说说了。
一个好的产品首先应该是一个好的消费者,其产品的设计应该是为用户服务的。技术干烦了,就转管理或者转产品设计人员。优势是有的,例如对产品的技术上可能了解的更为透彻,在产品的一些逻辑难点能够给予关键帮助。但是弊端也是显而易见的,就是程序员做久了,其审美能力的严重缺失,在乎数据、逻辑的正确性程度要远远大于界面的美观度页面的加载速度,也就是通常我们所讲的用户体验。其设计产品的时候过分关注与逻辑层面,而忽视用户层面。作为一名用户来说,我是不管你的这个数据是连接多少张表去查询出来的,也不管你攻克了什么难题,使用了什么牛逼的技术,你只需要在我需要的时候,将页面以我察觉不到的速度展示在我面前就行了,一切要以用户的角度去思考程序。其管理与设计要从大处着手,不能太过关注与某部分细节。
产品与程序分工不同,薪酬不同。所以如果做产品就不要再有程序的思维,以人的思维去考虑。程序思维可能让你拥有解决问题的能力,但是也限制了你设计产品的能力。
产品设计人员的沟通能力是至关重要的。程序员整日埋头敲代码,言语表达能力交际能力都不如专业的产品设计。你有一个牛逼哄哄的设计,你自己很清楚它能够达到什么样的效果,能够带来多少的利润。但是你表达不清楚,一切都是扯淡。跟你干活的程序员不知道,不知道你想要表达什么。以我做的产品为例,是关于大数据的整理加工。多表联查,数据之间逻辑异常复杂。我做的时候虽然明白数据与数据之间的逻辑,但是仅仅是明白,但是这些数据有什么意义呢,我是不清楚呢。就如同我荒废的大学时光,虽然每天都在上课,但是却浑浑噩噩度日。显而易见是非常低效率的。
好的产品设计一定要表达出来。你用不了声情并茂的讲演表达出来,那总可以用翔实的设计文档来描述吧。口述是万万不可的,人在说话的时候,逻辑的严密性是非常差的,而却不具备整理性。基本上是想到哪,说到哪。其中会遗漏很多的产品逻辑细节,这些设计人员是心知肚明的,就是忘记告诉你了。但是产品设计认为你们之间很有默契,你懂他。事实上,人与人之间言语的交流是非常低效的,据说不到50%。因此凡是产品设计一定要有文档,这是确定的必须执行的。
产品设计人员要将产品设计给程序人员讲解一遍,然后程序人员整理产品设计稿件给产品。再开一次会议来共同确认讨论结果,一定要确认好,程序做的产品是否是设计人员想要的产品。一流的设计,三流的执行,会做的不入流。三流的设计,一流的执行,做出来至少要比三流强。
最后一些话是想对自己说的。低头干活,抬头看路。做程序员的时候,要先把本职工作做好,但是不要把所有的精力都放在程序上,程序只是实现一种服务的方法。生活中有很多的乐趣需要去体验,我们还年轻,还要玩耍还要疯狂。所以写程序的时候,站在产品设计的角度去写程序,往往会有一种畅快的感觉。至于那些名词花哨的技术,身边牛逼哄哄的大牛,我们要学会视而不见,因为这些我们都终将学会,这些大牛我们终将超越。所谓大牛,无谓庖丁解牛,无它,惟手熟尔。
关于WEB项目的一点想法的更多相关文章
- 系统架构:Web应用架构的新趋势---前端和后端分离的一点想法
最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现 ...
- Java Web项目中连接Access数据库的配置方法
本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...
- web项目开发流程
对于一个web项目,在实际编码之前,有一些通用的步骤来planning a website: 0.Defining the project (predr0->dr0) 对于外部项目,客户一般会发 ...
- 使用eclipse运行maven web项目 插件/非插件
一.使用插件 tomcat 8.5 tomcat-users.xml中添加这一行就ok <user username="admin" password="admin ...
- 使用EXtjs6.2构建web项目
一.项目简介 众所周知ext是一款非常强大的表格控件,尤其是里边的grid为用户提供了非常多的功能,现在主流的还是用extjs4.0-4.2,但是更高一点的版本更加符合人的审美要求.因此,在今天咱们构 ...
- .NET WEB项目的调试发布相关
最近接触了.NET WEB项目,调试的时候因为没配置好文件浪费了些时间,特此记录一下相关配置,以后备用 如果IIS的基目录指向了别处,在build以后必须要发布,其实就是把最新的程序更新到IIS的基目 ...
- 模拟搭建Web项目的真实运行环境(七)
下面这个是mongo驱动的小案例,里面也有涉及到一点redis的操作 https://github.com/SuperRocky/MyMongoDriver 接下来通过几张图片主要介绍一下每个文件的具 ...
- web项目ajax技术一些总结
WEB项目中,最主要的就是前后端间的联络.有时需要不进行页面跳转的前提下请求后端方法(action),就需要用到ajax. 在这个博客中,我用到的都是原生的js的ajax,不是很喜欢用jquery的a ...
- Spring Scope:Web项目中如何安全使用有状态的Bean对象?
Web系统是最常见的Java应用系统之一,现在流行的Web项目多使用ssm或ssh框架,使用spring进行bean的管理,这为我们编写web项目带来了很多方便,通常,我们的controler层使用注 ...
随机推荐
- MySQL数据库
1.1 数据库的发展史 1.1.1 萌芽阶段--文件系统 文件系统 1.1.2 第一代数据库--层次模型.网状模型 1.1.2.1层次模型 这是一种导航结构,导航结构的优点:分类管理:导航结构的缺点: ...
- 1 张图秒懂 Nova 16 种操作 - 每天5分钟玩转 OpenStack(44)
前面我们讨论了 Instance 的若干操作,有的操作功能比较类似,也有各自的适用场景,现在是时候系统地总结一下了. 如上图所示,我们把对 Instance 的管理按运维工作的场景分为两类:常规操作和 ...
- saltstack简单部署和实践
#Elaine:master;Dylan:minion#利用salt给minion安装包[root@elaine states]# vim /etc/salt/master default_inclu ...
- register_shutdown_function AND fastcgi_finish_request
在php中又两个方法都是在请求快结束的时候执行.方法名分别是 register_shutdown_function和fastcgi_finish_request.虽然执行的时机差不多,但是功能和应用场 ...
- ASP.NET全局错误处理和异常日志记录以及IIS配置自定义错误页面
应用场景和使用目的 很多时候,我们在访问页面的时候,由于程序异常.系统崩溃会导致出现黄页.在通常的情况下,黄页对于我们来说,帮助是极大的,因为它可以帮助我们知道问题根源,甚至是哪一行代码出现了错误.但 ...
- 遍历List集合,删除符合条件的元素
List集合的遍历有三种方式:增强for循环,普通for循环,Iterator迭代器遍历 如果只是对集合进行遍历,以上三种循环都可正常遍历: (1)增强For循环遍历List集合 List<St ...
- 【原】HTML5 新增的结构元素——能用并不代表对了
做移动端有一段时间,今天有同事问了我 article 和 section 标签的使用,模模糊糊的解释了下,他似懂非懂,有点小尴尬.忽然间觉得自己有必要再翻翻书籍,重温下 html5 的新元素.html ...
- 关于Hadoop的集群环境下虚拟机采用NAT方式连不上网的解决
使用虚拟机搭建hadoop集群的时候采用的是NAT方式联网,但是会出现时常掉网的现象,查看后排查了很久也没有发现什么问题. 很可能是Windows下的NAT服务没有开启,这时候尽管虚拟机和主机是在一个 ...
- Ubuntu1604中mysql的登录问题
自从Ubuntu 1604出来后,新安装了尝试了下,在安装到mysql的时候用root登录不了,在网上查了很多资料都没找到解决办法.后来su到系统的root后直接就可以登录mysql了,看到Ubunt ...
- required string parameter XXX is not present
@RequestParam jQuery调用方式: deleteFile: function(filePath) { return ajax({ method: 'POST', url: '/cm/s ...