用 Node.js 做了个工资系统,我感觉不错为什么老板却觉得水平低?
程序员文章站
2022-06-01 11:49:41
...
回复内容:
其实提问者的这种疑惑我很能理解,相信很多人都能理解(当然大部分人看看就关了页面也不会特意来回答,我是晚上睡不着来说两句)。一般来说但凡是特别热爱编程的人学了一段时间后必然特别希望实践所学去解决具体问题。这是好事,学以致用是对的。但程序员处在这个阶段有个特点就是,充满激情,无所畏惧,但眼高手低,偏偏还固执己见。我无意冒犯,其实很惭愧的说我以前也经历过这种阶段,好几年。但很不惭愧的说这也不能算错,好多我们觉得很棒的程序员以前也就这样。为什么呢?因为没经验啊,见识少啊,在加上一点自以为是啊。(读到这里别生气,你要想我强调过我也曾经这样,不是只针对你,也针对我自己)
首先希望你继续加油学习,不要因为别人的批评就认为受到了伤害(但凡有点追求的人骨子里都有傲气,往往自尊心强,但也很敏感),你要知道这些尖锐的批评其实很宝贵,因为他们是在指出你的问题,促进你的进步。你要学会接受一点别人的建议,这是获得进步的关键。
比如说界面丑,说实话他们说的很对,这是看脸的世界,界面别说简陋,已经直接是引起反感了,普通人看到的第一反应是在心里就把它否定了,这时你再作解释其实无法改变任何事情了。所以你要明白,一个好的软件,不仅内核要强大,界面也必须及格。而你的界面如果满分 10 分的话只能打 1.5 分。那 0.5 是幸苦分。抱歉客观来说真的只能给这么多。你如果不能把界面做到 6 分的及格线那么真的,你再加更多功能也没意义,因为没人有兴趣继续了解。
另外有些人提和 Excel+Vba 的对比我觉得这样说的人往往比较有经验,他们特别能为客户着想。这种为客户着想不要简单的理解为不敢去突破,不敢跳出 Excel 创立自己的解决方案。其实他们宁愿选择 Vba,选择一种不凸显自己“技术高”的方案而是完全以用户使用习惯学习成本出发去考虑,这是所有成功的商业软件设计者必备的品质—方便用户,不是方便自己;以用户为中心,不是以自我为中心。这种品质是怎么来的呢?肯定不是与生俱来的,而是经历过像你这样的阶段后被现实啪啪啪打得体无完肤后痛彻学习到的。但这也不能说是教训,其实是一种社会良性运转所需的服务精神。是我们从“把技术当艺术”到“把技术当工具”的转变,把技术从神坛上请了下来,摆正了自己位置和心态后的新的认识。他们把这种认识告诉你,肯定不是要害你。虽然话有些耿直,但你要先尝试琢磨和体会,不要急于否定和争辩。
至于你谈到的让用户学 SQL 语句。我觉得有这种想法道不奇怪。因为你觉得这是“正确的选择”。而且这是更加“强大”的方案,学了“有百利无一害”。但按这个逻辑,我觉得你应该让他们直接学习一下 Matlab。众所周知 Matlab 是非常强大而且“简单易学”的,难度估计也就比 SQL 高一点但学会了以后各种数据处理哪还需要其他软件?如果你们财务和老板学有余力的话还可以安装上人工神经网络的工具箱,直接可以对你们的工资进行机器学习,何须止步于工资的自动计算呀(微笑)?你觉得你只让他们去学 SQL 是不是在阻碍他们?是不是害怕他们抢了你的饭碗?你这样的心态不对。技术方案选择还是有私心,太保守不够有远见。
当然玩笑归玩笑,意思你应该能体会。你把对用户的要求和期待拔得和对自己一样高。你心里觉得“这也是为他们好”实际上他们希望你能做的越傻瓜化越好,而不是越强大越好。
他们真的不期待强大,他们期待简单。期待漂亮,用起来有面子。如果你能满足这些,他们并不会吝啬对你的尊敬。因为你值得被尊敬。
但是当他们看到糟糕的界面,不知所云的概念和你固执的辩解时,他们没有感觉到你在尊敬他们。那么你又怎么能期待他们尊敬你呢?
最后说一句,你的野路子问题。其实不用自卑野路子不野路子。只要虚心肯学,多看书多实践,没有什么是教室里才能学到而你学不到的。这不是励志,这是事实。
请继续努力。看好你哟。 类似题主的情况,我也遇到过,具体情况是,网吧本来有一套基于excel的报表系统,作为每班结束后的统计之用,但是有一个比较严重的问题,就是由于收银员普遍素质不高,明令禁止在单元格之间复制粘贴,(由于报表通过公式来计算,因此复制粘贴会破坏引用关系),但是仍有大量新入职员工随意复制粘贴,导致各种计算错误。
因此需求就来了,开发一个不会受复制粘贴影响,且可以由管理者自己定义各种数据实体之间关系的报表系统。
我一想,这个需求不难啊?于是花了数天撸了一个简单的报表系统(用了Node.Js),上面提到的需求基本都可以满足。
但是更快,还没正式上线,就发现了严重问题,如果说之前excel形式的很容易搞砸是个大问题的话,那么现在的版本就是让员工更本摸不着头脑:因为excel操作真的太易学了,而且多数人可以凭借之前的经验熟练的操作,毕竟还是老员工多啊。
于是我想到了一个方法,就是改造excel,因为之前的excel的方案问题其实就只有一个,而好处却有很多,比如稳定性;可以简单的通过备份文件的方法来备份数据(而不需要单独学习一些东西);快速上手等等
具体方案就是利用excel内置的机制来解决这个问题,这个我探索了好久,最后是通过excel内置vba来解决这个问题,就是直接屏蔽菜单上的复制功能,然后对对应快捷键设置一个宏,手工实现复制粘贴功能,只改变值,而不更新公式引用,于是问题解决,对方很满意。
为什么我没有选择改造自己写的东西呢?因为成本啊!大部分需求Excel都能满足,而你自己去造一个能让用户按照既有习惯进行操作的软件,成本有多少?即使只是制作一个Excel功能的子集,那也是一个很大的工作量,有这个精力和能力,为啥不能搞别的?
一个替代项目的价值取决于它解决了一个问题的同时有没有同时引入更大的问题。新的东西总是会有学习成本的,特别是方案完全不同的情况,如果学习成本造成的问题大于它所解决的问题,那么被采纳才是怪事。
而且,你能保证你写的东西考虑的边界情况有excel的多?即使你都考虑到了,后面来接手的人呢?还有财务人员写的代码呢?这样的系统几乎没有实用性,除了拿来练手之外,实用价值确实不高。
-----
如果你真的要弄一个能让老板接受的方案的话,那就应该从一开始就去收集需求,最起码要知道原有方案的问题在于何处,不同的角色可能有不同的需求,比如员工的需求可能是方便查看自己的工资,和之前的工资的对比,已经工资涨跌的缘由——或者说是工资是如何被计算出来的;老板、财务的需求可能是方便的管理功能,比如调控一些系数,或者关联业绩的比例,增加一个新的影响因素——以上这些我是胡扯的,具体要自己调研。然后把这些需求整理起来,然后把所有的用例都设计出来,并且要考虑不同的情景下的操作。这是需求部分,这部分不做好,别去动工写什么。整理需求的过程切记多和这些人交流交流,如果你连这个都交流不好的话,做出的成品更难让人接受。
然后编码过程中注意可测试性,最好是能实现编写单元测试,毕竟这是涉及金钱的,如果出错了,那可比其他的问题严重多了。
界面部分其他人也都说的很好了,其实我觉得界面真不是问题的核心,因为一旦你事先设计好了,界面能不好用么?
虽然我觉得真要这么做这个项目会在需求分析阶段就被否决。。。 我所在的团队最近正在写人事管理系统,也是用nodejs。我在思考客户使用我们系统时,从来不敢想着让客户增加学习成本,基本都是客户点一个按钮,后端跑断腿的设计。
看到你说让那些财务学习使用sql,简直吓尿。为什么你会有这么反人类的想法,我平时操作数据库要么用sequelize、要么用workbench,直接写sql一般是用于调试或者添加批量数据。
你如果真的想推出你的产品,一定不要让领导觉得你的产品会产生巨大的学习成本。一个命令行、一个sql足以让大部分人闻之色变。
最后,好看的界面才是吸引客户的关键啊,我们的客户从来不挑后端的毛病,只挑些页面的字体大小什么的,毕竟他们不懂(´・_・`)。建议你用bootstrap来快速开发前端页面,扁平化设计,基于jquery,学习成本低,关键是还好看。
骚年,既然你觉得让财务们学习sql并不难,那你学习bootstrap应该也不难
吧~~~ 唉,我不是故意的…
1.敢不敢再丑点?
2.学sql?are you kidding!
你要考虑几个问题:
1.同事是白痴
2.用户是白痴
3.产品是傻逼
看完上面三个,你还敢说你这个提高了效率? 题主挺有想法的,是个人才。
但是干的这活一般被称作脱离用户实际需要的伪需求。
做一个软件,首先是要给人用的。
那么首先要找到这个软件的目标客户和实际用户。
然后去调查,分析他们的需求。
当然不同人有不同需求,还要分个高低轻重。
所以不是说开发人员自己觉得怎么样就是怎么样的。
好不好用开发人员说了不算,因为不是最终用户,他不知道实际应用场景里会出现什么情况。
你们老板说的很对,原来excel,财务人员用的很熟练,所谓会者不难,他们已经习惯了,没有需求去改变。
题主好心,说两分钟做15分钟的事,可能是站在题主自己的技术水平来说的,如果换作财务人员,可能是反过来的。
而且前期还有大量的培训成本。
而且题主敢保证程序没有bug?敢保证不会因为用户不熟练的操作造成数据损失?
再一个问题,如果做改进型的项目,还要考虑用户已形成的操作习惯。
一般的用户遇到用起来不顺手的东西,第一反应就是不好用。
然后可能用熟练了,才能客观的去和原来的情况比较,说白了就是用户习惯的向下兼容。
你想想当年win8出来多大的争议。
第三个问题,题主那个页面也太寒碜了,说难听点,一股山寨气息。一般用户对技术不熟,可是对gui还是挺关注的,你后面多牛的技术手段,不好看就是不爽。
还有,别跟用户说命令行,我看了都烦,别说一般用户了。
总之,题主这个在一般用户看来,就是个没用的半成品,题主要是想推广,还需要下下功夫。
如果你的操作足够友好,他们的实际问题你都能更有效且方便的实现,我觉得老板会赞同你的。 你把里面的英语换成德语,符号换成符文字母
基本就是你的程序在非编程人眼里的东西。弄个前端设置好输入条件让人直接点就完事了
想让麻瓜用魔法?不是教他们咒语,而是做成卷轴卖。你让业务人员学代码。。你是想让学不会的骂你还是学会的替换你? 让用户写sql语句??然后你只要执行??我大学时候做的大作业都不止这个水平好吗……做软件的都应该知道,永远不要相信用户的输入… 上次做个spa,一个删除按钮,我尝试了3个位置才最终确定。
以前听过一句话,“把用户当成傻逼,当成极度没有耐心的熊孩子,你就对了。”
以前我不以为然,经过几次坑之后,才深表同意。
用户不会考虑应用的复杂度。只考虑用的爽不爽,颜值高不高,能不能约炮,能不能撩妹。 做程序的第一个原则, 就是把用户当什么都不懂得*来看待, 这样设计自己的程序界面及逻辑的时候, 才能让最终结果不出问题...
很显然, 你做的东西离这个目标也太远了吧...
一般上一个可以操作内容的项目, 要有不同权限的东西, 还要有后台管理界面, 不是只做展示就可以的了, 因为直接操作数据库是大忌, 一般都要封装一下然后再做完善的数据校验权限, 管理员也很少直接操作数据的, 都是在后台管理页面去操作数据...因为人都有迷糊的时候, 手滑操作一下数据库, 错了怎么办? 慎之又慎才是最重要的事...
你现在不仅要补习前端知识, 对于用户体验设计的东西也有很多很多的要学习, 才不会有这么多的低级错误出现...
这个系统我要打分的话, 满分一百分, 我最多给1分...只是界面出来了而已... 老板的意思你没明白
他的意思是
大家用习惯后,万一你小子辞职了,以后我找谁来维护?
上一篇: 关于数组循环有关问题
下一篇: 常用的数值判断函数_PHP