热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[开发探索]结果,全栈开发者,完美&借贷

开发探索的一些update:将结果做为开发的基础和终极目标开发者从过程的追求到最后结果的追求是一个质变的过程,相当于NBA中得分王和总冠军的区别:一个是


开发探索的一些update:

将结果做为开发的基础和终极目标

开发者从过程的追求到最后结果的追求是一个质变的过程,相当于NBA中得分王和总冠军的区别:

  • 一个是完成一个局部的本职工作(有时候会和项目的结果冲突),寻求局部最优解,是贪心算法
  • 一个是面向把项目做好的各种因素,以项目结果为最终目标(有时候会和本职工作有冲突),寻求全局最优解,是动态规划算法

如果以追求结果的表现为标准的话,那么反观追求过程的表现,其中会充满了不足,甚至南辕北辙,并且以各种方式表现出来,而且很多表现的非常的隐晦,有大量的借口可以搪塞。

负面例子可以说在任何一个项目里都可以找出很多,就不负能量了。

实践中一个可行的方法可以是,在做事和回顾的时候,想象一个超级老道的开发者,他能以最小的代价(时间,人力。。。)把事情搞定(短期品质和长期品质),自己和他有什么样的差别。这样不停的做,可以说会让自己各方面更加老练。

在经验技巧到心态上都会有挑战,且行且积累吧。

全栈开发者

开始一看就非常喜欢这个概念,跨界能力的开发者在逐渐演化过程中始终是强大的存在,到这一波可以说是被更加显示的提出和认可。

就在前天还看见一波持反对意见的文章,里面举例常常是执行不对的结果,任何一个方法道理执行不对都要跪,不能做数。

全栈开发者的完备性解决方案:一起写到这个文章里也是和第一部分“结果导向”一致的,实际做项目时候一个好的结果源自各个因素的良好设计计划和执行。

各个方面专业的人放到一起,把问题拆分,各自想出方法,放到一起形成最终解决方法,听起来很美,但是各个局部的负责人如果没有一个全局眼光,则无法给出全局最优解。

所以开发者(无论是策划,程序还是美术)一旦开始了解其他领域,并一次为依据来思考开发并且执行的话,都会大大提升解决方案的质量。

退一步说,就是做自己的一块,那么如果能从更大的范围看自己的一块,也会有全新的认识。

一般来说全栈开发者是指有实践能力的,并不是说考虑问题能考虑到这一块就行了,实践会让认识有质的不同,如果能够如此,当然更给力了。


完美与借贷

上一篇blog(http://blog.csdn.net/toughbro/article/details/22776277)里面提到了借贷式开发,自己也实践了一个task,也做一个小结:

这个任务做下来质量不变的前提下,团队完成时间跨度大约是会提速%20-%30吧,但是长时间看来的团队输出没有什么变化,但是对于这个对于开发时间很敏感的task来说是颇有意义的。

按照原来的思路是设计好,实现一个不错的版本,然后相关人员开始进行,我再逐渐补全其他。

那么后来就是设计好,提交一个半成品(可用但是距离高质量有一段距离),然后更早的进入到大家并行的状态,然后我在同步的去其他事情,最后同样可以提交出高质量的实现。

  • 完备基础上的统筹和临时折衷:早期设计和计划仍旧是不能打折扣的,必须清楚高质量的实现是什么样子的,然后去在什么阶段什么部分去折衷(借贷),然后什么时候什么方式来还贷,这才是一次良好的运作。
    • 实现过程中始终保持清晰,把折衷掉的东西放到todo list中,不应该折衷的东西坚持做下来
    • 保持完备:最后代码质量,效率,注释,文档一个都不能少
    • 如果上来不想就冲进去做了再说,这个是乱投资,只能看运气,和我这里倡导的根本是两码事
  • 感觉开发过程更有意思了,做了时间久了,考虑的东西也多了,虽然写出来的东西更高质量,但是其实有点怀念刚入行的时候,没心没肺的在vc狂写
    • 借贷时候有一部分就是追求速度,这个过程堪称coding storm真的很畅快
  • 朋友圈里pm回了个话说这不就是敏捷思路么?嗯,这么说也对,但是对于实践者本人来说却很不同,开发功力练到第n+1级这种感觉吧,历数说来经历了
    • 刚工作:没设计好(其实早期是有这个意愿没这个能力),开始编程(时间略长),终于尽快捣出了个能用的,大家用,然后尽量完善下(常常是时间紧,来不及完善了)
    • 后来几年:追求编程能力,尽量好好设计,好好提升代码质量和速度,逐渐可以好好设计了,编程速度和质量在提升,但常常有任何时候都追求代码实现完美的倾向(当然实际中还是会写出不够好的代码)
    • 再后来:可以好好设计和实现,进一步可以在大的节奏上做的更好更灵活,比如写得更快则有空间写得更好,一段时间内降低代码质量要求则可以进一步提速,然后后面补回,则可以让同样代码质量的前提下,团队开发效率更好。
    • 或许再后来,可以一气呵成的写出好的代码,也不用借贷了,哥兜里够钱,不用借,利息都省了。。。
  • 有借贷需求时候才应该借贷,不应成为懒惰的借口
    • 如果一开始就没有借贷需求,时间没那么紧迫,那还是力求直接完成比较好
    • 有的时候coding时候会使用分而治之,一小块一小块的做,更适合大脑工作机制,这个和借贷方式没有完全本质的区别




推荐阅读
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • 本文介绍了游戏开发中的人工智能技术,包括定性行为和非定性行为的分类。定性行为是指特定且可预测的行为,而非定性行为则具有一定程度的不确定性。其中,追逐算法是定性行为的具体实例。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
author-avatar
张琇萍家云
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有