导航:首页 > 信息技术 > 如何提升技术的开源

如何提升技术的开源

发布时间:2022-12-25 21:28:57

⑴ 工作一到五年的Java程序员遇到瓶颈应该如何提升

工作了5年的Java程序员,该如何提升,做了3~5年Java开发,你已经积累了不少项目经验,扩宽了技术广度,也许已发力成为团队管理者。到了这个阶段,大家却常有这种感受:感觉自己卡在瓶颈进步缓慢,技术水平很难像早期一样实现大幅突破?
其实大家往往忽略了这一点——提升自己的架构认知(工作5年左右程序员必须重视架构认知的提升,这会很大程度上推动你今后的成长)。架构的本质在于面对业务场景给出优雅的解决方案,使得业务能够快速迭代和持续交付,从而达到降本增效的目标。提升架构认知高度,就像达克效应所描述的一样,要敢于从愚昧之巅跳到绝望之谷,通过爬升开悟之坡,从而达到架构认知的巅峰时刻。到达巅峰时刻也就掌握了架构背后设计的哲学,面对具体业务场景在架构层面你便能够轻松应对,以无招胜有招。
提升架构认知,要紧抓3个关键点:业务洞察力、技术视野、原创力(执行力)。
1.业务洞察力是技术战略层面的问题,在当下能够做出合理的判断,清楚公司做什么事情收益最大;

2. 技术视野即技术选型能力,是技术战术层面的问题,在清楚做什么事情后,需要进一步解决怎么做的问题,也就是能够给出合理的技术选型方案:是完全基于开源的方案,还是基于开源二次开发的方案,还是完全自研的方案;
3. 原创力(执行力)是技术落地执行层面的问题,一旦技术设计方案确定后,需要能够快速Rush完成。
这3点层层递进,最重要的是先把技术战略问题思考清楚,然后再进一步解决技术战术问题,最后是快速落地执行的问题。
工作5年左右的程序员,在原创力(执行力)层面比较有竞争力,往往欠缺技术视野以及业务洞察力。后面2点更加重要,这2点解决的是架构设计哲学问题,是架构师能够持续拥有竞争力和影响力的立身之道。

举个场景的例子来详细说明:一提到分布式锁问题,大多数人想到的方案是基于Redis的Master-Slave模式来实现。这个实现方案行不行?分布式锁本质是一个CP需求,基于Redis的实现是一个AP需求,乍一看基于Redis的实现是无法满足的。脱离业务场景来谈架构都是耍流氓。
从技术战略的需求层面来看,如果分布式锁在极端情况下获取锁的不一致,社交业务场景能够接受,那么基于Redis的实现是完全可行的。如果业务是交易场景,分布式锁在极端情况下获取锁的不一致性无法接受,那么基于Redis的实现方案是不可行的。在锁强一致性的场景下,需要采取基于CP模型的etcd等方案来实现。

⑵ 开源如何提升编程技能

开源是很多程序员都会面临的问题,很多人会相信接触的开源源技术越多对自己的编程技术提升越快,写出来的代码也更好。开源可提高编程技能之间有什么相关性或因果关系吗?

阅读代码能让你变得更优秀

我在编程生涯的早期就明白我阅读的代码越多,我的代码就能变得更好。我知道,当我不得不维护其他人的代码时,简单和干净的代码几乎总是比花哨或复杂的代码好——即使有注释。然而另一方面,当我花足够的时间去理解复杂代码的时候,我常常能够学到新的技巧。不论怎么样,都能让我有所提高。

这使得我在那些没有代码审查的地方一再争取。而当没有足够的时间来正式执行“代码审查”的时候,我会自己浏览存储库和阅读代码。当然,那时我还被受限于来自于小团队的公司资源。

超越语法

在你不得不全力对付任意编程语言的语法时,也就是学习如何充分利用该语言最琐碎的时刻。一门语言的语法往往是非常静态的,并且如果你出错了,你的编译器会向你控诉。更深层次的课程涉及到什么语言最适合解决什么样的问题(“合适的工具做合适的工作”),以及如何用那种语言编写代码以便于使它高效和可维护。

学习新语言有许多方法:课程,教程,导师,书籍以及等等。我通常会结合这些选项来学习一门新的语言。我注意到,当涉及到非语法元素的时候,这些方法常常非常相似。

阅读来自于其他人的实际部署代码会让你收获更多。不仅仅是常规的结构化学习,你还需要学习模式和实践方法。语言中所谓“正确”的做事方式并不总是效果最佳的方式。你会经历边缘情况,一次性事务以及意想不到的集成。你也会找到这些问题的解决方案,有好有坏,但如果你认真思考的话,那么这正是出来“推荐做法”的地方。今天的模式就是明天的反面模式。

你可能对有些事情,例如“总是注释”,“逗号放到最后”,“缩进x个空格”有着自己的想法,当然你是对的。我对提到的这些及编码的其他方面也有着自己的感受。

有时候当我阅读其他人的代码时,如果看到他们做错了,我会生气。但是随着我代码阅读量的增加,我开始懂得,总会有一些情形常见于别人的代码,但我在我自己的代码中却未曾遇到过的,并且我的方法没有必要那样执拗。我不仅改变了我的一些观点,而且懂得更加灵活。

开源无处不在

随着开源运动的发展,可供阅读和学习的代码数量也大幅度增长。例如Gitlab,GitHub和到BitBucket这些网站就允许我们获取全功能的应用程序,不仅可以阅读代码,还可以摆弄。很少有我想要学习的东西是不能在开源代码中获取的。

我以前学习新的编程语言,会把重点放在诸如目录结构和命名约定这些简单的事情上。但是,现在,我会找一些不同的开源项目,然后可以开始拼凑常用的方法。我很少强调以前那些类型的东西了。

可用的代码是如此之多,但质量却良莠不齐。当我们想要学习的时候,常常搞不清楚哪个好哪个不好。那就保持阅读代码吧,慢慢地你会学会如何区分。阅读“坏”的代码可以帮助你理解为什么它是“坏”的。关键是不要害怕尝试任何你觉得看上去正确的东西,并且当你走错路的时候能够承认错误,并改正问题,然后继续前行。

坏的代码就坏的,是这样的吗?

有人会说“坏的代码比好的代码要更多更明显”。sub-reddit致力于坏的代码。

在这些年里,我写了很多好的代码和坏的代码。当我看到我以前写的代码时,我的第一想法就是我怎么会写这样的垃圾代码。这实际上意味着我还在学习中。如果我看到我以前的代码,觉得它看上去非常伟大,那么说明我并没有提高。

那么,我们怎么才能从坏的代码中学到东西呢?

你阅读的坏代码越多,那么你就越擅长发现坏的代码

当你在学习和搜索例子的时候,你会发现和使用大量不能工作的代码。请记住,仅仅因为它不适合你的情况,并不能说明它就是坏的代码。学习如何让它工作能够使得你变得更优秀。

你怎么知道它是坏的代码?

人们喜欢批评。阅读评论,如果你看到很多“WTF(什么玩意)”,那么可能你看到的正是坏的代码,试着指出为什么不好的原因。不要只留下“这代码真烂”这样的评论。不要装得你好像懂得坏代码的所有需求,要知道,总有一个它之所以被这样写的正当理由。如果你知道它为什么是坏代码的原因,那么不妨留下一个有建设性的评论。或者??

让它变成好的代码

放一个能让代码变得更好的pull请求。修正语法,使用更好的方法,添加注释或修改缩进:这些都是改进代码的伟大方式。加一个为什么你推荐改变代码的解释。

昆明北大青鸟java培训专家认认为,当我帮助别人学习的时候能学到更多。如果我认为我理解了一个新的主题,那么我会找个人来试着向他解释,这能让我更深刻地理解和记住它,并且让我快速发现我是否写了坏的代码。

回报

记住开放源代码在你参与进去的时候效果最佳。代码更改在大多数项目中都是受欢迎的,但是有很多出力的方法。

测试开源代码和文件错误报告;帮助完成文档集;写教程和如何做的例子;参加对话——或者仅仅只是帮助传播。每一件事都能带来改变,并且越多的人参与进来越好!

⑶ 作为一名程序员,该如何提升自己的核心竞争力和不可替代性

作为一名程序员,该如何提升自己的核心竞争力和不可替代性?要想时刻保持竞争力,我觉得又具备几个方面的能力:不断的学习与深入这个行业,不能停留在解决问题的表面,要能有了解问题的本质上。举个例子吧,如果你是一个java的程序员,要想学会springboot ,不能仅仅局限与会用这个框架,要了解的深入,比从程序的启动到依赖注入,到所有模块的加载,异常处理,注解形式及控制,最好都能很熟悉。这样在遇到问题时,就会很有方向,而不是像新手一样问google,只是贴些报错,就算你要google你也会贴的更准确的报错。

阅读全文

与如何提升技术的开源相关的资料

热点内容
个人信息泄露被判刑的有哪些 浏览:179
义乌狗市场狗多少一只 浏览:650
如何解除移动数据限流的方法 浏览:174
郴州市活禽交易市场什么时候休市 浏览:456
四川空间信息产业发展怎么样 浏览:284
宏基笔记本怎么样关闭程序 浏览:522
邯郸有哪些铁板市场 浏览:850
问道如何查询账号信息 浏览:323
工商银行交易4204是什么意思 浏览:454
食品产品标准号怎么解读 浏览:536
我爱我家链家为什么退出北京市场 浏览:648
男生如何缩小脸部毛孔产品 浏览:199
数据线方头卡扣怎么卸 浏览:668
宫颈代理怎么做 浏览:815
想做食品代理商怎么样 浏览:366
农资加盟店需多少钱代理商 浏览:492
信息验证码如何设置 浏览:296
设计时必要准备的数据有哪些 浏览:886
采取的程序是有什么优势 浏览:116
伪中币交易网站有哪些 浏览:870