扬哥的场

扬哥的场

  • 首页
  • 技术
  • 资源
  • 文章
  • 网站
  • 分类
  • 归档
  • 关于

咨询

欢迎咨询和探讨任何问题

最新问题 热门问题 技术问题 面向企业 向我咨询
1017 #问题# 我是一名二本学校计算机科学与技术专业学生,不知道自己目前需要学什么,怎么学呢,谢谢
2020-01-29 问题咨询 热门问题
如题,计算机专业在校学生,该如何选择方向,该学什么,怎么学,学到什么程度?建议多去各大招聘站上逛逛:1 看看那些所谓的互联网大公司都在招哪些技术方向?2 哪些技术方向给的工资高?3 这些技术方向有没有你感兴趣的?4 这些技术招聘都有哪些要求?5 搜集这些要求都要学什么?举个例子,我毕业想去字节跳动(抖音)这个公司,搜了下应届毕业生招聘,发现下面这个岗位高薪唉(比如我就看中高薪):然后就开始搜集前端开发相关资料,比如什么是前端开发,前端开发未来发展怎样,应届毕业生都要求哪些,现在开始怎么学,学什么,学到什么程度等等。如果发现,我去,这就是我喜欢的,而且想要为之奋斗终生,OK,那就从今天开始,励志要做前端,到前端高级开发,到前端架构,到前端专家,到。。。好了,扯了这么多,回归正题:1 计算机基础:(这些一定要啃,持续啃,即使现在一知半解) 1)计算机组成 2)操作系统 3)计算机网络 4)数据库 5)C语言 6)数据结构及算法 2 计算机常见就业方向:(全面了解,选择适合自己的,感兴趣的,并作为终极目标,持续深入,成为大拿) 1)网络方向(网络工程师) 2)运维方向(系统运维,开发运维,DEVOPS) 3)数据库方向(DBA,数据库开发) 4)开发方向(硬件研发,嵌入式开发,系统开发,游戏开发,算法工程师,web开发,前端开发,移动开发,Android,IOS,全栈工程师) 5)数据方向(大数据开发,数据挖掘和分析,商务智能) 6)测试方向(测试工程师,自动化测试,持续集成) 7)项目管理方向(产品经理,PM经理,敏捷教练,DEVOPS) 8)安全方向(安全工程师) 9)新型产业(区块链,AR/VR,人工智能,机器学习) 10)技术管理和设计(架构师,技术Leader,技术经理,CTO) 11)独立开发者3 计算机进阶:(拥有一定计算机基础后,选择好方向,重点学习和进阶) 【以web开发为例】: 1)从零开始。找一本入门级编程书籍,如PHP开发入门,Java学习笔记等,按照书本内容,从搭建开发环境,写第一行代码Hello world,到写一个留言板,开发一个blog,开发一个电商网站。 2)开始实践。找第一份工作进行实践学习,分析需求,设计功能,完成开发,测试和上线发布。 3)技术扩展。打造自己的技术技能图谱,学习其他开发语言,学习系统,网络,运维,数据库,算法等,并在工作中实践运用,解决各种遇到的技术问题。 4)技术升级。应聘到大公司,学习并解决更复杂的技术问题,如高并发,高可用,中间件,大数据,系统架构,分布式等,当然还包括软技能,如技术管理、相互协作、高效沟通等等。 5)技术转型。1 技术管理 2 技术架构 3 技术专家 4 开始创业好了,今天就聊这么多,如果还有其他困惑,欢迎继续探讨,谢谢!
1019 #问题# 有哪些好的人生建议?
2020-01-30 问题咨询 热门问题
01 舍得为学习投资每次同学聚会,我都发现,大家的差距越来越大。那些读书时,一直保持着高度学习热情的人,变得越来越健谈,事业也水涨船高。他们的视野,比同龄人更加开阔;格局,比很多人都要大很多。他们每天都对世界保持着好奇心,孜孜不倦地从书本、课程里汲取知识,尤其舍得为自我成长而投资。我的学长露哥,是一家新媒体公司的运营总监。只要世面上出现的运营课程,他都毫不犹豫地买下来听。有时候,一出手就是几千。我问他,花这么多钱,值得吗?他说,只要是课程对我有一点启发,这对我来讲,就值回票价了。近年来,我看到他从月薪3000的小编,一直做到年薪50万的总监,学习上花的钱,估计也接近10万了吧。但是我相信他收获的价值,已经远远超过10万。他对自己持续地投资,也让他成为一个更值钱的人。02 不要一直透支你的身体工作的时间越长,你就越会发现,工作拼到最后,都是体力活。那些精力跟不上的人,慢慢地就被淘汰了。我明白,年轻时,我们没有钱,也没有资源,拿来拼的,只有我们的努力。有时候为了赶一个项目,或者突击一门考试,连续熬几个通宵,重点突破一下,效果是不错的。但一定要记住,这不是长久之计。出来混,迟早要还的。身体也是如此。年轻时熬的夜,早晚会变成年老时流的泪。毕竟,人生是一场马拉松。跑得快固然好,但更重要的,是跑得远。03 规划好你的时间我们的生命,是由一段段的时间组成的。所以鲁迅说,浪费别人的时间,就是谋财害命。像现在资讯如此发达,各种诱惑层出不穷,我们的时间,很容易就被各种手机APP、游戏、广告,一点点地蚕食掉。我们必须对每一分钟时间,保持高度的警惕。像抖音这种时间黑洞,一不小心,就会榨干我们的时间。你为什么一事无成,还不是没利用好时间嘛。罗振宇提出一个概念GNT——国民总时间。意思是说一个国家所有人的时间是固定的。现在的互联网生意,就是如何想办法去瓜分这些时间。当各种商家无孔不入,绞尽脑汁地瓜分你的时间时,你有没有一种细思极恐的感觉?赶紧规划好你的时间,别当了炮灰,还在替别人数钱。04 不要被情绪控制这件事真的太重要了。中关村才女梁宁,曾经说过:“情绪,是人大脑的底层操作系统。”情绪坏了,整个大脑就几近于瘫痪。想想是不是这样?当我们心情不好的时候,做什么事情都提不起劲来。尤其是那种性格敏感的人,可能只是别人无意说的一句话,就可以受伤几天。别人的一句表扬,也许会高兴很久。如果我们被情绪控制,处境就会变得很危险。要知道,外部的世界,我们是不能左右的。天上可能随时会下雨,它可不会管你带没带伞。所以我们能控制的,只有自己的内心。不以物喜不以己悲,以平和的心态,去对待生活的事情,你会工作得更加高效,也会活得更加幸福。05 做有积累的事情这件事,将决定我们能够走得多远。每个人,都在用力地工作和生活,但是成为牛人的,总是少数。真的是那些人,比其他人聪明很多吗?怕是不见得。但是他们有一个共同点,就是持续地做有积累的事情。所谓有积累的事情,就是可以产生复利的事情。举个例子,你如果手里有10万,以30%的速度增长的话,50年后,你将拥有多少钱?497.9292亿。复利的效果,就是这么可怕。可惜我们身边大多数人,做的都是机械性重复的工作。做报表、整理会议记录、收发邮件……工作时间越长,只是把这些事情做得更加熟练了,核心竞争力,却没有丝毫积累。其实,即便是这种看起来重复的工作,我们也可以做出岗位的价值来。这就需要我们透过工作的表象,以更高的高度,看到工作的本质。财务报表的本质,是反映公司的经营状况。能不能从数据中,看到公司的盈亏情况,从而判断以后的市场策略?从会议记录,可否看出大家的工作特点,为公司选人用人,提供一点价值参考?把重复的事情做出价值,持续做有积累的事情,你的能力,会像滚雪球一样,变得越来越强大。希望你也早日成为那个很厉害的人。 来自:https://www.zhihu.com/question/19869956/answer/990818023
1033 #面向企业# 中小微互联网公司该如何技术选型
2020-02-06 问题咨询 原创 面向企业
中小微公司,尤其是初创型公司,一定要记住: “move fast"! 在国内,由BAT"巨头垄断"的大环境下,我们中小微公司要想在夹缝中生存和发展起来, 一定要快,在快中寻找机遇,在快中寻找突破,或许,一不留神,你就成了。 所以,今天聊聊,在快速发展中,中小微企业该如何技术选型呢?有没有更好的选择? 因为业务领域不同,在技术选型上肯定大有不同,但是,选择的思路和原则肯定是一致的。 这里,我们列举了我们开发电商系统是如何技术选型的,仅供参考: 1、开发语言 PHP、JS 为什么我们选择PHP: 1)web开发的成熟语言 2)简单,灵活 3)随写,随测,随调,随时上线,开发效率高 4)PHP不是性能差,是你没用好 2、前后端分离 1)前后端协同开发,效率高 2)Resultful API,标准化API接口 3)便于以后服务化或技术迁移,比如迁移Java或go 3、开发工具 sublime、netbeans/phpstorm、vim、Git、postman、API契约测试Pact 开发工具尽量趋于个人习惯,但是好的工具应该纳入公司首选和推荐中。 4、数据存储 MySQL、redis 1)MySQL没有你想想中的那么慢,你真的用好它了吗 2)缓存,缓存。良好的缓存机制,可以让你的系统飞一样的快 5、开发框架及工程工具 JQuery、Vue.js、bootstrap、laravel、composer、webpack 框架要轻,要成熟,要实用 6、开发环境和运维 Vagrant、virtubox、Linux、Jenkins、Docker、ansible、Nagios、Fluentd 1)用vagrant构建一致的应用环境(开发、测试、预发、生产),不要把时间浪费在怀疑环境的问题上。 2)CI/CD(可选),如果有能力还是要建立CI/CD,让开发只关注代码开发,让自动化一切可以自动化的。 3)Docker (可选),docker的轻量和效率是有目共睹的,但是,如果用不好,会给团队增加复制度和不必要的麻烦。 4) 阿里云平台,使用方便,相对还是可靠的。 5)轻量稳定的监控系统Nagios、日志采集分析工具fluentd 7、敏捷开发 1)快速迭代、协同作战、高效沟通 2)做好阶段性回顾总结,让团队持续推进, 3)从每日站会、需求管理、看板、代码审查、需求验证、持续集成、持续反馈中,寻找团队节奏,持续演进。 8、协同工具 钉钉、Tower 1)选择钉钉,初衷是想将工作(钉钉)和生活(微信)分开。 2)Tower,你需要一个简单好用的项目协同工具,这里还包括trello、Worktile、teambition 总之,我们在做技术选型时,遵循以下原则: 1、简单、轻量、高效 2、能用开源的,绝不自己造轮子 3、能用钱解决的,不要耗费人力时间 4、自动化一切可以自动化的(只要错误在可控范围内) 中小微公司,和大型公司不一样,我们是在技术、人力、成本的平衡中去做选择,可能不是最好,但一定要是最适合发展的,快速争取时间和赢得市场,你说呢? 如果你有更好的选择和建议,欢迎拍砖和探讨。
1037 #面向企业# 如何快速打造一支精而强的技术团队?所向披靡的那种
2020-02-07 问题咨询 面向企业
软件开发的现状• 软件的复杂度持续不断地提升 • 业务需求复杂度 • 部署运营规模复杂度 • 维护支持复杂度• 软件开发迭代周期和频率越来越快 • 开发、测试周期 • 交付周期 • 解决问题的周期• 软件的运行和质量要求的越来越高 • 扩展性 • 稳定性、可用性 • 用户体验客观事实 优秀的程序员创造的价值是平庸程序员的10000倍 只有亲身体验过痛苦,才会有想要改进的动力 程序就是用来自动化一切机械劳动 主动工作的生产力远远大于被动工作的生产力非工程师文化1、流程文化 = 官僚主义+办公室政治2、咨询师文化 = 假大空文化3、产品经理文化 = 模仿抄袭文化4、老板文化 = 独裁文化(要么牛,要么混蛋)5、营销文化 = 腐败 + 弄虚作假工程师文化 = 创新、自主、效率、价值创始人懂得工程师文化;知识(技术)密集型价值观和目标一致;资源平等,信息透明;雇佣最好的人,个体能力强,每个人都是Leader;(不要舍不得那点工资)自组织,自协作,自管理,自进化;简化功能,抽象软件;残酷无情的推动自动化;残酷无情的降低维护工作量;允许20%的自由时间;维护一个相互尊重,不断反思和相互主动学习的环境。什么样的领导,什么样的文化。什么样的创始人,什么样的公司。什么样的组织架构,什么样的产品形态。大公司是否能持续发展,主要看管理层(选人和用人)小公司是否能发展壮大,主要看boss(格局和能力)
1043 #面向企业# 如何判断一个创业idea是否靠谱?
2020-02-11 问题咨询 面向企业
• 1.idea思考完,是否开始行动了 光思考,光计划,如何行动才是关键 • 2.idea为自己思考 只有为自己思考的idea才有意义 为别人设计的idea没有意义,比如马云用我的idea可以赚100万等。 • 3.为一个大市场做产品 原因 传统互联网 百万级别才能活下来 太过度细分市场的冠军没有意义 能收费的模式 马上能回血的模型 要具体问题具体分析 • 4.不要依赖单一资源 人 渠道 巨头 政策 供应商 公司公开资源 伴随公司政策调整 ex.阿里 交易数据 腾讯 好友关系 • 5.不要高度投机 不够长期 ex.越狱 刷榜 • 6.系统出发考虑创业 适合这个国家 适合我 有很多idea 根据象限 选一个 • 7.公司行业定位 没有动到大公司的核心利益 和大公司中层可以硬碰硬竞争 • 8.对竞品分析 能达到做客服的水平 了解完整发展流程 创始人的水平 用发展的眼光看竞品 • 9.不要过度创新 产品 市场 二选一 旧产品 新市场 新产品 旧市场 • 10. 想象的需求要最小成本验证 换成第三人称视角讲述idea 寻求反馈 有真金白银的支持权重很大 • 11.流量从哪里来? 获客成本极高 对方有你不知道的流量来源 • 12. idea落地纸上 有商业计划书 或 deck 能口头用对方能理解的语言解释清楚 能理解包括 用英语 和 不用专业术语 • 13.追求真正的价值 价值衡量的标准可以是你自己设计 不能凭感觉,要结合客观数据衡量 你自己的标准 股东 合伙人 员工要认可
1052 #问题# 为什么有好多人设定的目标不成功?
2020-02-17 问题咨询 热门问题
strong{margin:15px 0;font-weight:600;} 一句话,你设定目标时候的姿势有问题! 那么,如何设定一个切实可行的目标,并一步一步实现它,这里分享一篇文章给你 今天我来说一下如何设定目标,本篇文章是我观看许多名人的书籍,视频,如陈安之,马云,卡耐基,乔吉拉德,等等,看他们的书籍,结合自己的实践总结出来的,如何设立目标呢,今天就让我们来看一下 我时常在想,要想成功需要很多条件,如时间管理,28原则,学习,健康,兴趣。。。。。。这些都很重要,我们都要学,又该怎么学,在这些当中,最最重要的又是什么呢 给你5秒钟,想一想是什么 5 4 3 2 1 好吧,这就是行动,如果你没有行动的话所有的一切都是0 当你行动了之后,你的大脑就会刺激你的灵感,你会想到很多新点子,灵感就来自于这里 西尔维斯特·史泰龙— 一个被人拒绝1855次的背后故事 从一个穷困潦倒的少年,到一个好莱坞演员 被拒绝1000多次,可想而知,如果有一次他没有行动,也不可能是现在这个样子 所以说行动是所有一切的前提,没有行动,所有的一切都是0 那么还等什么,现在就开始行动吧,不是明天,也不是后天,而是今天,现在就开始行动,想做什么就去做吧 说了这么多,有好多人即使有行动也未必成功,因为做每件事都讲究一个方法,这个方法很重要,咱们就来说一下这个方法 1.写下目标 把你的目标下来,不要在脑子里想想就完事啦,要亲自写到本子上,有研究表明,如果一个目标你写下来,和你在脑子里面想想它成功的概率分别是68%和34%,可想而知写下来是多么的重要,世界上最伟大的事情就是有目标,去追求目标,就是现在,马上去拿笔记本,把它写到你的笔记本上,至于什么是目标,你现在如果连目标都不知道,那么你想要什么,你想要什么就写什么,渴望爱情,金钱,财富,等等都可以,设立目标可以从健康,财富,爱,快乐,这四个方面来想,比如健康,你希望你的体重到多少斤,你以前90公斤,你想你的体重到80公斤,这就是你的目标,每天早上7点必须起床,去围着公园跑步30分钟,金钱也是一样的,这样设置目标,爱,你可以定义你的另一半,你可以定义家人,比如今年我要和家人在9月份的时候去一次海边,看大海,捕鱼,等等快乐,跟自己的兴趣有关,我喜欢摄影,我今年的目标出30部作品,虽然一部看的也没有,这也没有关系,自己喜欢就好,但是记住一定要写下来,一定要写下来,一定要写下来,重要的事情说三遍 2.为什么要完成这个目标,赋予现实的意义 比如我想找个对象,为什么要完成这个目标,啪啪啪也好,有个伴也好,帮助你也好,它的意义是什么,写下来,达到这个目标有什么意义,这样可以加强你的动机,加强你的决心,加强的的动力,在实现目标的路上不是一番风顺的,你会遇到各种挫折,各种阻碍,如果你有一个很强的动机,很强的决心,赋予的意义,那么当你遇到这些挫折的时候,你更容易度过,反之很容易放弃 3.必须为所有目标定下期限 必须为你所有的目标定下一个期限,如果期限特别长可以分阶段变成一个个的短期限,如果你定了一个目标没有写期限的话,相信我,你永远也不会达成,因为人事有惰性的,每个人都很懒惰,可能会各种推脱,明日复明日,比如写作业吧,每天的作业,周六日的作业,寒暑假的作业,你可以发现的事无论这作业多少,你都能在早上老师让交作业前完成,你脑中有一个强迫的神经,它会时刻提醒你,你的大脑会帮助你完成期限内的事情,定下一个期限是很重要的,比如说还钱,我欠你5元,我说明天还你,和说以后再说,还钱的速度是不一样的,可能以后再说有可能就不还啦,这就是期限的重要性 4.阻碍你目标的点是什么,如何突破它,达成目标的点是什么,如何利用它 你在实现目标的时候,实现这个目标缺少什么,我想成为销售天才,但是我天生口吃,这就是我的缺陷,我要突破它,每天大声读书1w遍等等,这就是阻碍你的点,受到最弱的这一项的影响,比如有个桶,是有8根木板组成,那么其中有一根木板短,你所接到的水也会变短,所以改变最弱的这一项将大幅度提升你的能力,如何大幅提升你的能力呢,你需要什么工具,你需要什么来达成,我想喝水,水在井里,我就需要一个桶,一根长的线,把水打上来,然后喝,或者找到火,烧开喝,等等,一五一十的写到纸上,把它写下来,加强它,加强最弱的点,你可以想一下你最弱的点是什么,如何加强它 5.设定行动计划,划分成一个个小的行动计划 行动计划必须变成一个个小的行动计划,把它刨开,跟洋葱一样剥到底,比如我要去乌克兰,首先我买机票,买完当天去北京,在北京住一晚,早上提前4个小时去t2航站楼,托运行李,过海关,把所有不能过关的都放到行李箱内,然后登机,带些吃的,抵达乌克兰,一定要把计划细分开来,把计划变成可以执行的单位,你现在就可以执行,比如你去乌克兰,你现在就想什么时候去,准备网上订票还是现实买票等等,在大的蛋糕也是一点点做的,在高的楼层也是从地基开始打,一层层盖的,所以要写下来,把每个小目标写下来,重点写下来 6.列出重要顺序,轻重缓急 列出重要顺序,有序的去做事,依照28原则的道理,你百分之八十的成功源于你那百分之二十的努力,也曾经有人写过一周工作4小时等等的书籍,道理是一样的,列出重要顺序,轻重缓急,上方刚刚写下来的目标,弱项,加强等等哪一个最重要,在最重要的点标注,哪一个现在做下去对我整体影响最大,最能提升自己的点,进行标注,但是往往通常这个是最难的,你最弱的点,同样也是你最难克服的点,同样也是最不容易达到的点,还等什么现在就去做,去行动,gogogo 7.习惯你的目标 把你所有的行动目标变成习惯,什么是习惯,就是当你双手交叉的时候,很自然的,有的左手拇指在上,有的右手拇指在上,这就是习惯,据说这个习惯是小孩在3岁的时候第一次交叉产生的,当你习惯了一件事之后,你将做起来很轻松,把你的目标行动变成一个习惯,去习惯你的目标,你现在生活的98%的基本都是习惯,无论做决定也好,吃喝拉撒也好,都是你的习惯,比如阅读是你的弱点,你最想达成的,那么好我们将习惯阅读,你每天只读10页的书,如果对你有点多,5页,如果还多那么10个字,我每天就看10个字,相信我当你行动之后就会发生巨大改变,可能你要看10字,没想到看上之后内心对自己说反正都看了再看看吧,没准就看10页,一天10页,一年最少也得5-8本书左右,所以把行动变成习惯,再让习惯去适应它,还等什么,马上去行动吧 8.每天早晚必须看一次,做视觉化练习 视觉化练习,打个比方我说西瓜,你首先想到的是什么,没错,是绿绿的,带花纹的,圆圆的,切开红红的,很甜是吧,而不是西瓜这两个生硬的汉子,把你的目标变成你所能看到的,这就是视觉化练习,我曾经看到朗达拜恩的书籍,她写到把你的目标想成你达成后的样子,你脑中的画面是你达成后的样子,你已经拥有这一切,每天看一次目标,脑中视觉化,想象成你已经成功了,对没错,你已经成功了 这就是我所分享的设立目标,达成目标的8个步骤,上面也说过有个最重要的前提就是行动,对,你还在等什么,现在马上立刻去行动。 From: https://www.bilibili.com/read/cv10343/
1061 #面向企业# 如何才能有效的减少技术债务?
2020-02-26 问题咨询 面向企业
作为技术负责人,如何才能有效的减少技术债务? 技术债务,到底应该怎么还? 几乎所有的技术团队,都会经历或多或少的技术债务。技术债务虽然是实现快速收益的一种捷径,但是为了修复那些为了快速收益而不得不为之的技术问题,企业往往需要花费大量的金钱、人力等。那么如何有效地避免技术债务,使得开发人员能把更多的精力投入在有效的工作,从而产生额外价值、提高企业的产品竞争力呢? 技术债务的产生有着很多原因,但其中更多的是由于要在短时间内匆忙完成原本耗时较长的工作,导致部分业务逻辑没有完整的设计等,使得产品在短时间内有效,但是长远来看,却是一颗不稳定的炸弹,一旦触发,对产品、对企业都有可能造成无法挽回的损失。总而言之,技术债务会带来很多麻烦,有些甚至是“致命”的。 什么是技术债务? 技术负债(英语:Technical debt),又译技术债,也称为设计负债(design debt)、代码负债(code debt),是编程及软件工程中的一个比喻。指开发人员为了加速软件开发,在应该采用最佳方案时进行了妥协,改用了短期内能加速软件开发的方案,从而在未来给自己带来的额外开发负担。这种技术上的选择,就像一笔债务一样,虽然眼前看起来可以得到好处,但必须在未来偿还。软件工程师必须付出额外的时间和精力持续修复由于之前的妥协所造成的问题及副作用,或是进行重构,把架构改善为最佳实现方式。——摘自 维基百科 很多人将技术债务类比于金融债务,但是和金融债务不同的是,技术债务可能不会承担利息。例如当需要快速验证产品的某个特点的时候,带有一定技术债务的产品可能是个好的选择;当验证之后,无需该特点的时候,即可以直接移除等,此时可能不会承担债务利息。但是大多数时候,此类情况较少,就算仅仅是为了验证产品,也不建议使用技术债务的方式去实施。类似这样的技术债务可称为有意的技术债务,另一种更加危险的技术债务称为无意的技术债务,无意的技术债务就像是前文说到的隐藏在代码中的炸弹。 无论是那种技术债务,在未来的产品迭代过程中,都需要开发人员去界定债务边界,不能任由技术债务滋生,否则在迭代过程中,面临的困难会越来越多,甚至需要被迫承担更多的技术债务。基本上,你承担的债务越多,项目的进度就越慢,项目的后续阶段就会更加困难。 但是需要清楚的是,技术债务是无法消除的,你必须随时做好承担技术债务的准备。因为在有的项目场景中,一些解决方案可以针对性解决某些具体问题,但是该方案可能不是全局有效或最佳的,于是在系统的其他方面就形成了一个不可避免而必须承担的技术债务问题。一个好的工程师团队,应该是能够最小化技术债务影响,并对技术债务进行合理管理的团队。 上文提到,技术债务分为有意的技术债务和无意的技术债务,两种形式的技术债务形成的原因和带来的结果是不同的。在某些情况下,有意的技术债务相比无意的技术债务更好,有意的技术债务会让团队意识到问题,从而有意的去进行优化改进等;而无意的技术债务可能在项目中潜伏很长一段时间,可能导致严重的问题,然而,无意的技术债务在项目中是无法避免的,只能通过在工程师团队中强化编码规范、业务理解等来对技术债务进行管理或者减弱其出现的可能。 另外还可以将技术债务分类为鲁莽型技术债务和谨慎型技术债务。一些谨慎型的技术债务在项目进程中是可取的,但是不论是哪种技术债务,都需要每个人勇于承担。理想的情况下,承担的债务应当是那些有意的和谨慎的技术债务,而那些无意的和鲁莽的技术债务应当不惜一切代价去避免。 为什么要关心技术债务? 技术债务如何影响开发 在开发阶段,开发人员不可避免会遇到技术债务,应当直面技术债务,并积极处理技术债务问题。虽然处理技术债务可能会使得开发周期变长,但从长远来看,开发人员及时处理技术债务是有益的,一方面处理技术债务是一个技术经验积累的过程,另一方面及时的处理可以在之后的迭代中减少技术债务产生的可能等。每一个开发人员都应当有意的或者尽力地避免那些无意的和鲁莽的技术债务。 技术债务如何影响客户 虽然乍看起来,技术债务和客户并无联系,客户也不太关心产品的代码质量等,客户只需要在成本没有增加的情况下,产品能够按时交付使用。然而,一个背负无意或者鲁莽的技术债务的产品在开发过程中,往往需要花费更多的时间、精力和资源,导致成本增加而收益却减少的情况等。 技术债务如何影响用户 即使是间接的,用户也会受到技术债务的影响。他们可能不关心软件开发所需的工作量或资金,但他们确实关心它的可靠运行,以及快速添加的新功能,这两者都可能受到大量技术债务的影响。用户越快乐,客户越快乐,开发者越快乐。 技术债务最佳实践 解决技术债务的最大问题是,它无法真正被量化。这使得开发团队很难跟踪技术债务并让管理层向客户展示为什么要投入更多的资源和时间。 但是这里有一些事情是你可以做的: 保持最新状态 不言而喻,工具、框架和库应该始终保持最新状态。并不是每个人都能意识到这一点,所以这里再强调一下也无妨。 文档 记录需要修复或更新的所有内容,这是确保实际修复和更新的最重要步骤。 如果存在技术债务,最好了解它并确保团队或未来的开发人员也了解。文档减少了定位和修复问题所需的工作量,如果债务记录良好,甚至能在业务层面上可见,将有助于获得客户承认并提供额外资源。 代码审查 另一个强大的工具是在sprint期间定期审查代码。代码审查可以捕捉到可能导致问题的隐患,并找到解决方案。代码审查确实需要一些时间,但在整个项目的背景下肯定是值得的。 但是,代码审查也有其缺点。开发人员往往太忙,无法深入挖掘他人的代码,因此他们只会发现明显的错误,而吹毛求疵可能会导致团队内部紧张。因此,它可以成为减少技术债务的有力工具,但应该谨慎应用。 自动化测试 自动化测试是一种非常强大的工具,但是经常被忽视。自动化测试被忽略后,可能会无法察觉出代码中的隐藏问题,往往导致产品发布后需要投入不成比例的人力和时间来应对,使得成本变高甚至不可控。在开发阶段,有必要实施测试驱动开发,编写完善的测试用例,以清除代码中的许多不易察觉的问题等。 敏捷架构 敏捷架构具有很多优点,在构建软件的过程中对更改更加开放,这基本会发生在任何项目上。但是,它确实要求代码具有灵活性和可维护性,因此敏捷方法自然会使开发人员保持良好的代码,这有助于防止技术债务的大量积累。 有效地复盘 如果出现问题,应该勇于面对,当问题解决后,需要进行有效地复盘。但是要注意的是,复盘是为了提高工作效率,而不是为了找人背锅。复盘的重点应放在了解问题及产生问题的原因上,以便团队可以采取必要措施防止同样的问题再次发生。 管理技术债务的最佳做法 即使你做了以上所有事情,并尽可能避免技术债务的堆积,仍然会有一些债务需要去处理。这是无法避免的,因此应该执行最佳实践和流程以防止技术债务失控。 高利息(高代价)技术债务优先 并非所有技术债务都是平等的,因此应该优先考虑在特定时间内要解决的问题以及先不解决的问题。存在于经常使用和更改的部分代码中的“垃圾”,就比在几乎没有使用或更改过的部分代码中的“垃圾”要严重得多。 高息债务往往是那些在项目中起重要作用的核心部分,通常围绕它进行了很多工作并以此为基础。如果此部分的技术债务没有解决,就会妨碍所有的工作,并可能迫使其他部分的代码背上更多的技术债务。因此,如果有可能,首先应优先考虑这些问题,并在后续使一切变得更加顺畅。 童子军规则 “要始终保持营地比你发现它的时候更清洁”也是适用于软件开发的:“提交的代码要比检出的更好”。鼓励团队成员,以积极减少技术债务 ; 例如,当他们发现了为了功能增加或错误修复的代码时,激励他们重构这部分代码。 当然,它不能没有边界,否则它可能会无止境的消耗时间。但是,如果你在每个sprint中留出一定比例的时间,专门用于修复开发人员发现的任何技术债务,那么它可以在很大程度上保持产品尽可能无债务。 在履行有价值的客户工作时偿还债务 在项目的整个sprint阶段修复技术债务不是一个好主意。一方面,客户往往不喜欢延期,对他们来说,看起来你似乎花了他们的时间和金钱来解决你的错误。另一方面,它也表明你已经因技术债务所累而做了大量工作,所以你可能已经为了债务付出了超出必要的代价。 最好限制在每个sprint中偿还技术债务所花费的时间,并用它来解决高优先级或突然遇到的问题。让客户满意,并使技术债务处于可控水平。 忽略 同样重要的是,要注意并不是所有技术债务都应该偿还。当产品接近其使用寿命时,如果它是短期使用或者只是一次性原型时,技术债务不是主要问题。这些实例很少见,但是当它们出现时你可以节省一些时间和精力。 结论 技术债务是伴随着项目出现而且无法避免,但是如何保持其在可控范围之内,是我们应该思考的问题。技术债务的避免和消除都需要优秀的开发人员,人始终是软件开发中最重要的因素。作为一名普通的码农,不断地提升自己是非常必要的。 本文主要译自: TECHNICAL DEBT: EVERYTHING YOU NEED TO KNOW, AND HOW TO MANAGE IT (https://codingsans.com/blog/technical-debt) ​ 其他参考资料: 技术负债(https://zh.wikipedia.org/wiki/%E6%8A%80%E6%9C%AF%E8%B4%9F%E5%80%BA) 技术债治理的四条原则(https://insights.thoughtworks.cn/managing-technical-debt/) 解析技术债务(https://www.infoq.cn/article/2009/10/dissecting-technical-debt ​
1069 #问题# 现在您是如何建立迭代自己的知识图谱(知识库)来保障自身的核心竞争力(软实力和硬实力)呢?
2020-03-02 问题咨询 热门问题
问题:现在您是如何建立迭代自己的知识图谱(知识库)来保障自身的核心竞争力(软实力和硬实力)呢? 核心竞争力就是自己的专业能力 比如我自己是技术+产品是舒适区 运营+市场是学习区。这几块不断加强,不断突破。影响力是赠品有最好 没有也不影响生存发展。终身学习刻意练习大量输入才是根本。人脉也是基于你的能力和专业度。所以硬实力唯有高效可怕的勤奋,软实力需要性格,价值观,机遇,工具,选择共同决定。你交了哪些真朋友,你怎么筛选真朋友,你怎么分析选择抓住机遇,最后还需要一点运气,这块不要强求,水到渠成随缘最好!
1072 #问题# 所谓的「干货」真的有用吗?
2020-03-07 问题咨询 热门问题
大多数情况下,最干的干货来自于教科书等领域内的经典著作(互联网这种快速发展的领域除外,教科书落后于行业发展)然而很多人不愿意看教科书,却可能更愿意听一个不是那么专业和洗练的知乎live。为什么?因为很多人要的不是真正的学习,而只是一种“学习的感觉”而已。我自己做了一些观察,把学习行为分为两类:严肃学习和消遣学习两种。其实每个人的学习行为都包含两个部分,不过,我认为严肃学习的效用远大于消遣学习。严肃学习(serious learning)- 真正为了深入某个领域而学习- 读领域公认的经典著作,教科书等- 找能找到的该领域真正权威请教- 投入的时间长,大量时间花在反复练习上- 注重探讨而不是证明自己是对的消遣学习(recreational learning)- 学习的目的只是为了初步了解,或者在他人面前谈资及满足- 喜欢“收集”,给自己“我在学习“的感觉。- 仪式感重于内容,喜欢频次高,深度浅,时间短的学习,喜欢速成、集合的内容- 喜欢直接到结论而不想深入了解得出结论的过程和历史背景,也不喜欢练习- 喜欢争论而非探讨,喜欢证明自己是对的- 下载一堆电子书、知乎live、分答、值乎、果壳、得到等:并不是说消遣学习就是不好的,事实上每个人大部分学习的内容都是消遣学习,有很多朋友说得对,就是想知道美食,不用先从教科书学起(不过其实从经典著作开始学习红酒、咖啡等,也事实上比看知乎更加准确和高效)。如果我们从 T 型人才模型来看,也就是 T 的那一横。然而如果没有严肃学习,或者严肃学习的深度不够,那么对于一个人的专长技能,也就是 T 的那一竖,往往是会有所限制。
1073 #问题# 2020年有什么新的互联网创业机会?
2020-03-08 问题咨询 热门问题
这样导致的直接结果就是,越来越难有没被探索过的大机会,新机会出现之后也会很快变成激烈的竞争局面,对创业者的融资能力要求提高了很多,创业公司的短期优势可能被大公司用钱砸没,老司机之间的竞争意味着创业者不能犯太多或者太大的错误,一个失误下来,可能对手就冲到前面去很难翻盘了。 所以现在看互联网领域的创业,主要有下面几个关注点 关注互联网和产业更深度结合的机会。例如互联网+教育、生鲜、保险、医疗等,近年来都诞生了不少成长快速的公司。 关注新市场(如下沉市场,出海,00后,新文化新爱好)的机会。 关注行业经验丰富,做成过事情的“老司机”的创业。 尽管竞争的难度增加了很多,但是也要看到乐观的一面。整体中国互联网市场规模增大了4倍,对于优秀的创业者而言,能够得到的政策和资本支持,创业环境,人才环境也发生了翻天覆地的变化。在万马齐喑究可哀的时候,下一代超级独角兽也许正在诞生。
1078 #问题# 认知到底是个什么鬼?
2020-03-09 问题咨询 热门问题
认知能力(cognitiveabilities,cognitiveability);认知能力是指人脑加工、储存和提取信息的能力,即人们对事物的构成、性能与他物的关系、发展的动力、发展方向以及基本规律的把握能力。它是人们成功的完成活动最重要的心理条件。知觉、记忆、注意、思维和想象的能力都被认为是认知能力。 认知,简单说,其实就是认识世界万物本质的能力。只有当你更多的,更深入的了解世界运行规律和本质时,你就会更加自如的掌握你的生命,包括你的生活轨迹。 举例,赚钱认知,其实赚钱的本质就是价值交换的过程中,用更低的成本获取更高的收益。所以,你要赚钱,就要提供价值,并想办法降低成本即可。当然,这只是简单举例说明下认知的基本概念,在今天,赚钱已然是一个非常复杂的事情了,有些人毕其一生也未必能掌握。
1083 #问题# 厉害的人都应该具备哪些特质?
2020-03-13 问题咨询 热门问题
要变成一个很厉害的人,你需要具备 7 个素质: 1 舍得投资自己 2 懂得复制时间 3 每天都要学习 4 主动结识牛人 5 相信复利效应 6 涉猎多个领域 7 肯用钱换时间 1 舍得投资自己 厉害的人,从出生开始,父母就会舍得投资孩子,到长大独立了,他们自己更是愿意大量的投资自己,包括持续学习,认识大牛,获取资源,继续深造,健身锻炼等等 2 懂得复制时间 每个人每天只有24个小时,怎么复制时间呢?1)做复利的事,比如写书,做线上课程,开发软件等,只要投入一次时间,就会持续产生收益。2)买其他人的时间。把一些普通的事情交给其他人搭理,支付一些金钱,可以节省自己很多的时间,用于创作,思考,学习。 3 每天都要学习 每天学习,阅读,持续高效有价值的输入,假以时日,你一定会感激当初的你的。 4 主动结识牛人 很多时候,主动去结识一些自己够得着的大牛,价值互换,互相学习,补充自己的短板和见识。 5 相信复利效应 复利效应,会在时间的作用下,成几何倍数增加的。 6 涉猎多个领域 这个时代在一个领域顶尖水平的大牛太多了,那我们的出路在哪里,那就需要跨界,当你在多个领域可以价值传递和连接的时候,你就会找到突破口的。 7 肯用钱换时间 是的,用金钱去换去你那宝贵的时间吧,时间不够用,钱可以慢慢赚,不是吗? 以上,你觉得厉害的人还具备哪些特质呢?

© 2025 - All Rights Reserved by zhangyang.date