关于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层使用注 ...
随机推荐
- SqlServer数据类型
Character 字符串: 数据类型 描述 存储 char(n) 固定长度的字符串.最多 8,000 个字符. n varchar(n) 可变长度的字符串.最多 8,000 个字符. varch ...
- MySQL server version for the right syntax to use near 'TYPE=MyISAM'
最近将一个版本为4.0.18-Max的MySQL数据库迁移到5.6.20-enterprise-commercial-advanced上.好吧,这是我迄今为止,见到过的最古老版本的MySQL数据库,这 ...
- SQL*Plus中替换变量与定义变量
替换变量 SQL*Plus中的替换变量又叫替代变量,它一般用来临时存储相关数据:在SQL语句之间传递值.一般使用&或&&前缀来指定替换变量. 关于使用替换变量,一般是利用其创建 ...
- DPA 9.1.85 升级到DPA 10.0.352流程
SolarWinds DPA的升级其实是一件非常简单的事情,这里介绍一下从DPA 9.1.95升级到 DPA 10.0.352版本的流程.为什么要升级呢? DPA给用户发的邮件已经写的非常清楚了(如下 ...
- hadoop 8088无法访问
http://bbs.csdn.net/topics/390891983 yarn-site.xml <property> <name>yarn.resourcemanager ...
- C#调用LUA函数
using UnityEngine; using System.Collections; using LuaInterface; public class testLUACALL : MonoBeha ...
- cf Round 607
A.Chain Reaction(DP+二分) 题意:一排有n个灯塔,每个灯塔给出坐标xi和力量yi,每次从最右边依次点亮灯塔,每点亮一个灯塔,它左边的距离它yi范围内的灯塔将受到损坏.现在允许在最右 ...
- 解决ppt中视频不能播放的问题
小伙伴一直在纠结一个问题,有个ppt,在其他人的电脑上可以正常播放其中的视频,但是在某一个电脑上却总是不能播放,一直没找到原因,俺们今早捯饬了一下,貌似找到一丢丢原因和解决办法了. #1,疑似原因 为 ...
- HTML标记语言篇--学习笔记01
HTML标记语言篇 第1章 HTML基础 1.1 基本概念 WWW 是"World Wide Web"(全球广域网)的缩写,简称为Web,中文又称为"万维网" ...
- EasyUI datagrildview导出excel报表
$.extend($.fn.datagrid.methods, { toExcel: function(jq, filename){ return jq.each(function(){ var ur ...