有点失落、迷茫,差点在上班的时候发了火。原因是之前离职的一位同事,在代码里不加注释,而且百般偷懒,致使很多应该的验证没有验证,很多应该考虑到的情况没有考虑。因为是老员工,我相比他来说是新员工。气势上总是差那么一点点的,不敢去质疑前辈们的代码。但是这样下去,项目的质量一直提升不上去,讲他还不能讲,对于整个项目管理来说这样的员工就是一颗定时炸弹。虽然是写了代码,恭喜还能跑,但是这是在浪费公司的资源,也是在浪费同事的时间。这样的代码以后维护起来,是要花费很大的代价的,是非常大的代价。然而现在已经是这种情况了,没有办法,只有错上加错,在慌乱的代码里东凑西补,使得项目更加难以维护。

另外一个原因,就是项目的设计。从公司的管理层面上来讲,管理是基于两种前提的:信任,不信任。在信任的前提下,企业会给足员工的发展空间,让员工去发展。但是就我所在公司与管理层的领导风格来看,是基于后者的。无论是基于信任还是不信任,其实都不是最主要的。就如同人性本恶与人性本善的悖论。关键的点在于,我们公司的产品设计人员是从程序员出身的,这一点就十分有必要说说了。

   一个好的产品首先应该是一个好的消费者,其产品的设计应该是为用户服务的。技术干烦了,就转管理或者转产品设计人员。优势是有的,例如对产品的技术上可能了解的更为透彻,在产品的一些逻辑难点能够给予关键帮助。但是弊端也是显而易见的,就是程序员做久了,其审美能力的严重缺失,在乎数据、逻辑的正确性程度要远远大于界面的美观度页面的加载速度,也就是通常我们所讲的用户体验。其设计产品的时候过分关注与逻辑层面,而忽视用户层面。作为一名用户来说,我是不管你的这个数据是连接多少张表去查询出来的,也不管你攻克了什么难题,使用了什么牛逼的技术,你只需要在我需要的时候,将页面以我察觉不到的速度展示在我面前就行了,一切要以用户的角度去思考程序。其管理与设计要从大处着手,不能太过关注与某部分细节。

产品与程序分工不同,薪酬不同。所以如果做产品就不要再有程序的思维,以人的思维去考虑。程序思维可能让你拥有解决问题的能力,但是也限制了你设计产品的能力。

产品设计人员的沟通能力是至关重要的。程序员整日埋头敲代码,言语表达能力交际能力都不如专业的产品设计。你有一个牛逼哄哄的设计,你自己很清楚它能够达到什么样的效果,能够带来多少的利润。但是你表达不清楚,一切都是扯淡。跟你干活的程序员不知道,不知道你想要表达什么。以我做的产品为例,是关于大数据的整理加工。多表联查,数据之间逻辑异常复杂。我做的时候虽然明白数据与数据之间的逻辑,但是仅仅是明白,但是这些数据有什么意义呢,我是不清楚呢。就如同我荒废的大学时光,虽然每天都在上课,但是却浑浑噩噩度日。显而易见是非常低效率的。

好的产品设计一定要表达出来。你用不了声情并茂的讲演表达出来,那总可以用翔实的设计文档来描述吧。口述是万万不可的,人在说话的时候,逻辑的严密性是非常差的,而却不具备整理性。基本上是想到哪,说到哪。其中会遗漏很多的产品逻辑细节,这些设计人员是心知肚明的,就是忘记告诉你了。但是产品设计认为你们之间很有默契,你懂他。事实上,人与人之间言语的交流是非常低效的,据说不到50%。因此凡是产品设计一定要有文档,这是确定的必须执行的。

产品设计人员要将产品设计给程序人员讲解一遍,然后程序人员整理产品设计稿件给产品。再开一次会议来共同确认讨论结果,一定要确认好,程序做的产品是否是设计人员想要的产品。一流的设计,三流的执行,会做的不入流。三流的设计,一流的执行,做出来至少要比三流强。

  最后一些话是想对自己说的。低头干活,抬头看路。做程序员的时候,要先把本职工作做好,但是不要把所有的精力都放在程序上,程序只是实现一种服务的方法。生活中有很多的乐趣需要去体验,我们还年轻,还要玩耍还要疯狂。所以写程序的时候,站在产品设计的角度去写程序,往往会有一种畅快的感觉。至于那些名词花哨的技术,身边牛逼哄哄的大牛,我们要学会视而不见,因为这些我们都终将学会,这些大牛我们终将超越。所谓大牛,无谓庖丁解牛,无它,惟手熟尔。

  

关于WEB项目的一点想法的更多相关文章

  1. 系统架构:Web应用架构的新趋势---前端和后端分离的一点想法

    最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现 ...

  2. Java Web项目中连接Access数据库的配置方法

    本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...

  3. web项目开发流程

    对于一个web项目,在实际编码之前,有一些通用的步骤来planning a website: 0.Defining the project (predr0->dr0) 对于外部项目,客户一般会发 ...

  4. 使用eclipse运行maven web项目 插件/非插件

    一.使用插件 tomcat 8.5 tomcat-users.xml中添加这一行就ok <user username="admin" password="admin ...

  5. 使用EXtjs6.2构建web项目

    一.项目简介 众所周知ext是一款非常强大的表格控件,尤其是里边的grid为用户提供了非常多的功能,现在主流的还是用extjs4.0-4.2,但是更高一点的版本更加符合人的审美要求.因此,在今天咱们构 ...

  6. .NET WEB项目的调试发布相关

    最近接触了.NET WEB项目,调试的时候因为没配置好文件浪费了些时间,特此记录一下相关配置,以后备用 如果IIS的基目录指向了别处,在build以后必须要发布,其实就是把最新的程序更新到IIS的基目 ...

  7. 模拟搭建Web项目的真实运行环境(七)

    下面这个是mongo驱动的小案例,里面也有涉及到一点redis的操作 https://github.com/SuperRocky/MyMongoDriver 接下来通过几张图片主要介绍一下每个文件的具 ...

  8. web项目ajax技术一些总结

    WEB项目中,最主要的就是前后端间的联络.有时需要不进行页面跳转的前提下请求后端方法(action),就需要用到ajax. 在这个博客中,我用到的都是原生的js的ajax,不是很喜欢用jquery的a ...

  9. Spring Scope:Web项目中如何安全使用有状态的Bean对象?

    Web系统是最常见的Java应用系统之一,现在流行的Web项目多使用ssm或ssh框架,使用spring进行bean的管理,这为我们编写web项目带来了很多方便,通常,我们的controler层使用注 ...

随机推荐

  1. Cannot execute as the database principal because the principal "guest" does not exist, this type of principal cannot be impersonated, or you do not have permission.

    今天遇到这样一个问题:一个系统的作业需要给系统Support人员开放SQL Agent下作业的查看.执行权限.数据库版本为SQL Server 2014 SP2,给这个系统Support人员的NT账号 ...

  2. 【hive】——Hive基本操作

    阅读本文章可以带着下面问题:1.与传统数据库对比,找出他们的区别2.熟练写出增删改查(面试必备) 创建表:hive> CREATE TABLE pokes (foo INT, bar STRIN ...

  3. x01.Weiqi.8: 一点改进

    原来的代码全部删除,进行了深层次重构,得其意而忘其言.得意之处有二: 1.关于显示 以 StoneSize 属性为依托,在 set 中加了一句:Width = Height = m_StoneSize ...

  4. 2016 最佳 Linux 发行版排行榜

    2015年,不管在企业市场还是个人消费市场都是 Linux非常重要的一年.作为一个自2005年起就开始使用 Linux的 Linuxer ,我门见证了 Linux在过去十年的成长.2016 Linux ...

  5. ubuntu su sudo sudo–i 区别

    sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码.不过有时间限制,Ubuntu默认为一次时长15分钟. su : 切换到某某用户模式, ...

  6. [原创]基于rsync算法的目的性改进-RexSync

    rsync是一种文件差异传输的算法,特点是高效且相似块识别率较高.具体算法这边就不赘述,网上很多,官方文档也描述的很清楚. rsync提高文件比对效率的一个核心算法之一就是rolling checks ...

  7. 【小白的CFD之旅】11 敲门实例【续】

    主要内容: 接上文[小白的CFD之旅]10 敲门实例 2.4 Materials设置2.5 Cell Zone Conditions2.6 Boundary Conditons2.7 Dynamic ...

  8. TFS修改项目名称

    引言 如何让TFS管理的项目更名后不丢失修改历史记录? 在工作中有时由于前期考虑不足,某个Project的名字在项目开发过程中需要修改以更准备表达它的功能.本文就对此进行抛砖引玉 操作 在Source ...

  9. java设计模式之中介者模式

    中介者模式 用一个中介对象来封装一系列的对象交互.中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. 中介者模式UML图 中介者模式代码 package com ...

  10. python 聊天室

    server端程序 # -*- coding: utf-8 -*- #!/usr/bin/python """ """ import soc ...