2016年總結(jié)與2017年計(jì)劃

主要學(xué)習(xí)方向:Java夺巩、CI/CD
1、語(yǔ)言: Java
2、框架:Spring Boot
架構(gòu): 微服務(wù)  Microservices.io
3海诲、軟件開(kāi)發(fā)流程:Software development process
4级野、DevOps
5页屠、CI/CD
信息安全:XSS,SQL Injection
6、日志
7蓖柔、測(cè)試     
8辰企、初次了解或嘗試的東東:Docker、Nginx况鸣、DaoCloud牢贸、網(wǎng)易IM云服務(wù)、Shiro镐捧、Atlassian潜索、AWS、Gitflow Workflow懂酱、Redis竹习、ELK、neo4j列牺、ZooKeeper由驹、Chef、ActiveMQ、SOA蔓榄、工程師文化
灰度發(fā)布并炮、A/B測(cè)試、Serverless Architectures(無(wú)服務(wù)器架構(gòu))

7甥郑、云服務(wù):Postman云服務(wù)逃魄、Gradle云服務(wù)、石墨推出收費(fèi)服務(wù)澜搅、Jenkins 推出 新的界面UI
8伍俘、在線學(xué)習(xí):Udacity、慕課網(wǎng)勉躺、麥子學(xué)院癌瘾、CSDN公開(kāi)課、普元云計(jì)算饵溅、InfoQ大咖說(shuō)妨退、2016 Google StudyJams中國(guó)區(qū)、混沌研習(xí)社蜕企、掘金咬荷、開(kāi)發(fā)者頭條、云棲社區(qū)轻掩、InfoQ幸乒、atlassian、https://www.thoughtworks.com/radar
https://www.oreilly.com/ideas/ youtube 視頻資料等
https://www.nginx.com/resources/library/  提供了很多O'REILLY的免費(fèi)電子書(shū)下載
圖靈訪談
CSDN近匠
https://pivotal.io/
bittiger.io

9唇牧、書(shū):重構(gòu)罕扎、代碼整潔之道、構(gòu)建之美丐重、深入淺出MyBatis技術(shù)原理與實(shí)戰(zhàn)壳影、微服務(wù)設(shè)計(jì)、程序員
10弥臼、工具: IDEA的進(jìn)一步了解、 Chrome的使用根灯。

11径缅、 記錄片: 互聯(lián)網(wǎng)時(shí)代、走進(jìn)科學(xué)(數(shù)據(jù)爆炸)
12烙肺、心態(tài):不應(yīng)局限于某個(gè)單一領(lǐng)域纳猪,多接觸各類(lèi)新技術(shù),掌握未來(lái)科技發(fā)展趨勢(shì)
13桃笙、產(chǎn)品:對(duì)于創(chuàng)業(yè)與產(chǎn)品氏堤,有一些簡(jiǎn)單的個(gè)人感受
14、馮大輝CTO,對(duì)CTO的認(rèn)知鼠锈,架構(gòu)師的認(rèn)知闪檬。優(yōu)秀的工程師,程序員軟技能

主要拓寬了技術(shù)知識(shí)面购笆,很多知識(shí)并未實(shí)踐與深入了解粗悯。

溝通的重要性、文檔的重要性同欠、代碼整潔的重要性样傍、項(xiàng)目管理的重要性

展開(kāi)描述:

了解 Java 8 的新特性。
比如 時(shí)間API 進(jìn)行了很大的改進(jìn)铺遂。對(duì)開(kāi)發(fā)者非常友好衫哥。但不知道為啥會(huì)創(chuàng)業(yè)小公司(技術(shù)團(tuán)隊(duì)少于10人)不愿意應(yīng)用在項(xiàng)目中。
對(duì)于Java SE 開(kāi)發(fā)和 Java EE 開(kāi)發(fā)的還是有一些模糊襟锐。
另外對(duì) Java 核心基礎(chǔ)掌握的仍然很薄弱撤逢,
Java 集合框架 Set List
Java concurrent 并發(fā)工具包
Java 線程Serverless Architectures

JVM

Java Servlet JSP

WebSocket

應(yīng)用服務(wù)器Tomcat的掌握程度也處于薄弱狀態(tài)。以及嵌入式Tomcat的了解

今后從官方文檔了解捌斧、掌握笛质、加深各方面知識(shí)

16年基本掌握了如何使用Spring Boot 進(jìn)行 Java Web Service 的開(kāi)發(fā)。
但基本停留在簡(jiǎn)單應(yīng)用上捞蚂,未進(jìn)行過(guò)復(fù)雜應(yīng)用的開(kāi)發(fā)(使用 Spring 提供的各種特性)妇押。

關(guān)于數(shù)據(jù)庫(kù)
對(duì)于數(shù)據(jù)庫(kù)

烏云網(wǎng)的沒(méi)落,蘋(píng)果與谷歌推動(dòng)的Https的應(yīng)用姓迅,讓安全得到了互聯(lián)網(wǎng)行業(yè)的重視敲霍。

在多個(gè)App的Web網(wǎng)頁(yè)中以及公司的中都出現(xiàn)了廣告,應(yīng)該是由于流量劫持造成的丁存。

Http,Https 等協(xié)議的了解屬于淺嘗輒止肩杈。
公司的項(xiàng)目中也暴露了各類(lèi)安全問(wèn)題,(支付解寝,登錄扩然,Cookie都處在一定的安全漏洞)

關(guān)于微服務(wù),一直是猶抱琵琶半遮面的感覺(jué)聋伦,都是看各種博客來(lái)了解的夫偶,但一直沒(méi)有去實(shí)踐于項(xiàng)目中。(看的是翻譯版觉增,原文地址 https://www.nginx.com/blog/introduction-to-microservices/
微服務(wù)解決了單體應(yīng)用的模塊之間的耦合性兵拢,更易于擴(kuò)展,單個(gè)獨(dú)立的服務(wù)更適合部署和拆分小團(tuán)隊(duì)來(lái)開(kāi)發(fā)逾礁。

項(xiàng)目管理说铃、團(tuán)隊(duì)管理、軟件開(kāi)發(fā)流程,
由于個(gè)人能力不強(qiáng)腻扇,一直在創(chuàng)業(yè)小公司(技術(shù)團(tuán)隊(duì)少于10人)混跡债热,親身體會(huì)到小公司對(duì)于互聯(lián)網(wǎng)軟件開(kāi)發(fā)流程不重視以及未對(duì)這方面引起關(guān)注,開(kāi)發(fā)流程比較混亂衙解,項(xiàng)目基本沒(méi)有規(guī)范可言阳柔,后端接口基本靠口頭溝通,代碼質(zhì)量管理也是沒(méi)有的蚓峦,
代碼會(huì)充斥各類(lèi)壞味道舌剂,而且同樣沒(méi)人認(rèn)識(shí)代碼問(wèn)題的嚴(yán)重性,版本控制工具依然停留在SVN上暑椰,同時(shí)Workflow也沒(méi)有引起重視霍转,基本所有的代碼都是提交在主分支上。另外對(duì)被互聯(lián)網(wǎng)公司廣泛應(yīng)用的持續(xù)集成與持續(xù)交付的實(shí)踐也基本沒(méi)有一汽,應(yīng)用的部署都是手動(dòng)完成的避消,而且沒(méi)有經(jīng)過(guò)自動(dòng)化測(cè)試。同時(shí)測(cè)試環(huán)境與線上環(huán)境不一致的問(wèn)題都會(huì)出現(xiàn)召夹。另外值得一提的是岩喷,在項(xiàng)目文檔方面,有部分人會(huì)認(rèn)為寫(xiě)文檔是浪費(fèi)時(shí)間的监憎。在前端纱意、移動(dòng)端 與后端 的接口交互上,使用口頭溝通(或QQ鲸阔、微信非團(tuán)隊(duì)溝通工具)或直接發(fā)代碼的形式偷霉,實(shí)際造成了理解不一致,調(diào)試繁瑣等問(wèn)題褐筛。由于沒(méi)有CI/CD 的實(shí)踐类少,造成大的功能迭代完成后,經(jīng)過(guò)簡(jiǎn)單的人工功能測(cè)試就發(fā)現(xiàn)一堆問(wèn)題渔扎,造成周期加長(zhǎng)硫狞,開(kāi)發(fā)人員加班趕期的結(jié)果。
在測(cè)試方面晃痴,基本停留在簡(jiǎn)單的人工手動(dòng)測(cè)試上残吩,沒(méi)有可持續(xù)的自動(dòng)化測(cè)試(安全、性能測(cè)試都沒(méi)有)

DevOps

關(guān)于這方面的知識(shí)比較模糊愧旦。

CI/CD
持續(xù)集成、持續(xù)交付定罢,持續(xù)部署笤虫,一直都比較感興趣,在這方面閱讀和觀看了很多大牛的分享。這一方面涉及的知識(shí)也比較多琼蚯,比如

在Udacity 學(xué)習(xí)了幾個(gè)免費(fèi)課程酬凳、Software Development Process、Intro to DevOps

隨著軟件行業(yè)的快速發(fā)展遭庶。最近幾年宁仔,很多做工具類(lèi)的軟件公司,都開(kāi)始在推出云付費(fèi)服務(wù)峦睡。比如Postman翎苫,Gradle

看了幾本技術(shù)相關(guān)的書(shū),但對(duì)于內(nèi)容消化的根本不夠榨了,在實(shí)際工作的實(shí)踐應(yīng)用也基本沒(méi)有煎谍。當(dāng)公司UI問(wèn)我“重構(gòu)”用通俗易懂的語(yǔ)言描述,我竟答不出來(lái)龙屉。

工具的熟練掌握呐粘,對(duì)于強(qiáng)大的Java IDEA IDE 一直在用,可是就使用了最基本的功能转捕,卻忽略了它提供的其他好用的特性功能作岖。(比如對(duì)版本控制系統(tǒng)的支持,代碼質(zhì)量的檢查)
對(duì)于自己常用的工具的使用五芝,應(yīng)該熟練掌握痘儡,且信手拈來(lái)。使用工具將開(kāi)發(fā)效率最大化的提高与柑。

開(kāi)發(fā)方法:

Software Development Methodologies

Agile Software Development Methodology (Scrum谤辜、Kanban)
Extreme Programming (XP) Methodology

https://www.atlassian.com/software-trends 軟件趨勢(shì)的調(diào)查中:
High performing teams practice Agile, CD, and use a DVCS (like Git) but only 49% of all teams use all 3 software development trends together. Provide some details on your current process below and see how you compare to others in your industry.

Agile is a software development framework. It breaks projects into chunks of work that are prioritized and delivered iteratively.
Git is a version control system that records every developer’s working copy of the code with a full history of all the changes in a repo.
Continuous delivery aims at building, testing, and releasing software frequently in cycles, ensuring it can be reliably released at any time.
Containers are used to spin up test environments where you can define an image that includes everything needed to run an application.
Code review is a process when an issue is finished, and other developers look over the code to make sure it is ready for production.

Agile、CD价捧、DVCS (Distributed Version Control System) 丑念、Container、Code review 這5個(gè)實(shí)踐是目前的軟件趨勢(shì)结蟋。

94% have a branching strategy in place. Learn more about branching strategies and how these everyday workflows improve the quality of your code.
29% said a pull request waits 4 hrs to be reviewed. Pull Requests (PR) are created as a form of code review to notify team members that a feature has been completed and is ready to be reviewed before merging to the master branch. They create a dedicated forum for teams to discuss proposed changes, keeping the team connected and code clean. Check out how your team can benefit from using pull requests.

PR (Pull Requests) (https://www.atlassian.com/git/tutorials/making-a-pull-request/how-it-works)
Most PRs have 1 - 3 reviewers
Teams average 1 PR / day
51% enforce an approval policy, helping ensure clean and production-ready code. (https://developer.atlassian.com/blog/2016/03/code-approval-policies-explained/)

Teams that practice Continuous Delivery make rapid changes and reduce the risk of error.
On average, a team member will create 20 builds / month
The average build time is 18 mins

Here's an inside look at agile teams that release often. Teams attributes include:

~30 issues / sprint
10 day average sprint length
15 days between releases
Say goodbye to a case of the Mondays. Mondays are the most popular release day.

40% of teams practice ChatOps for conversation driven development. If you just said "huh, what is ChatOps?" or "I think I'm doing ChatOps, maybe?" - check out a real life scenario and pro-tips here (http://blogs.atlassian.com/2016/02/inside-atlassian-sre-use-chatops-run-incident-management/) .

CD的好處:
Overall development costs reduced by ~40%
Programs under development increased by ~140%
Development costs per program reduced by 78%
Resources driving innovation increased by 5x

Microservices architecture is the new standard for building applications. Converting your apps to a microservices approach makes them more flexible, more stable, and far faster and easier to update. However, questions arise as to how to make the transition.

The seven-part series on microservices development published in the NGINX blog provided many of the answers. Now, we have created an ebook that combines these blog posts with information on how to use NGINX Plus to bring microservices to life as you develop and deploy your apps.
https://www.nginx.com/resources/library/designing-deploying-microservices/

敏捷12原則:http://agilemanifesto.org/iso/zhchs/manifesto.html
The Twelve-Factor App:https://12factor.net/

Fowler Martin
Beck Kent
Robert C. Martin
Chris Richardson
Jeff Sutherland  Scrum 創(chuàng)始人
Matt Stine   Cloud Native 的提出者

科技的進(jìn)步脯倚,IT從業(yè)者也越來(lái)越多,在科技信息資訊這一塊也越來(lái)越豐富嵌屎,有給開(kāi)發(fā)者程序員專(zhuān)門(mén)的App,網(wǎng)站推正,服務(wù)等。程序員的大型會(huì)議也逐步變多宝惰。

DevOps 通過(guò)自動(dòng)化植榕,來(lái)避免人工手動(dòng)處理,
ChatOps
NoOps

Microservices From Design to Deployment 一書(shū)中關(guān)于對(duì)微服務(wù)的描述
Microservices are a critical part of a number of significant advancements that are
changing the nature of how we work. Agile software development techniques, moving
applications to the cloud, DevOps culture, continuous integration and continuous
deployment (CI/CD), and the use of containers are all being used alongside microservices
to revolutionize application development and delivery.

Disadvantages
? Deployment becomes more complex
? Many ?small“ microservices, dependencies, etc.
? Automation is mandatory
? DevOps – Continuous Integration, Continuous Deployment,
Automated Testing
? Testing, logging, monitoring require new tools with support
for microservices
? In Java EE – problem of fat application server

2017 年計(jì)劃

1尼夺、辭職尊残、重新求職炒瘸。
2、Java 核心基礎(chǔ)知識(shí) (http://docs.oracle.com/javase/tutorial/tutorialLearningPaths.html http://docs.oracle.com/javase/8/docs/ https://docs.oracle.com/javaee/7/tutorial/)
Java SE 8 Lambda

Spring

3寝衫、常見(jiàn)算法

協(xié)議的深入:HTTP顷扩、DNS UDP TCP IP Socket HTTPS HTTP2

4、堅(jiān)持寫(xiě)技術(shù)博客(無(wú)論好壞)
5慰毅、學(xué)習(xí)一門(mén)編程語(yǔ)言(Python隘截、JavaScript、Node.js)
6汹胃、了解一門(mén)新東東(未來(lái)科技趨勢(shì) Internet of Things  IoT婶芭,Artificial Intelligence  AI、 Virtual Reality VR统台、Machine Learning雕擂、Data Science DeepMind 人工智能(AI)、大數(shù)據(jù)(Bigdata)和云計(jì)算(Cloud Computing)深層神經(jīng)網(wǎng)絡(luò)贱勃、TDD,DDD,)
7 微服務(wù)實(shí)踐(網(wǎng)關(guān)井赌、服務(wù)發(fā)現(xiàn)與注冊(cè))
8、DevOps的實(shí)踐(http://www.infoq.com/cn/news/2016/12/2017-DevOps-5-predict
《DevOps實(shí)踐》《DevOps實(shí)戰(zhàn)》

JAX-RS
CDI
WebSockets
JSON-P
Bean Validation
Concurrency Utilities for Java EE
JPA
JTA
EJB Lite
JCache
Servlets
HTTP/2
OAuth 2
Other

KumuluzEE comes with support for several Java EE specifications that we can selectively use in our microservices. As of this writing KumuluzEE comes with the following technologies:

Servlet 3.1
JSP 2.3
EL 3.0
CDI 1.2
JPA 2.1
JAX-RS 2.0
Bean Validation 1.1
JSON-P 1.0
You can choose to include only those that you actually need. This means that you can use only the dependencies that you need, instead of always having the entire runtime present that’s using your memory and slowing your microservice down. The next bigger release will include support for the following additional components:

Websocket 1.1
JSF 2.2
JAX-WS 2.2

AWS對(duì)DevOps的描述
https://aws.amazon.com/cn/devops/what-is-devops/

newrelic對(duì)DevOps生命周期的理解贵扰。
https://newrelic.com/devops/lifecycle

CI/CD
https://blog.snap-ci.com/blog/2016/08/30/5-ways-build-test-deploy-software-fast/
https://fabric8.io/guide/cdelivery.html

https://blog.openshift.com/cicd-with-openshift/

Cloud Native Java Applications on Spring Boot 許曉斌 在DockerCon的演講仇穗。 提到了12原則戚绕,pivotal出版的Beyond the Twelve-Factor App

來(lái)自JavaONE的分享纹坐。
Ten Productivity Tips for Java EE and Spring Developers [CON2633]
https://oracle.rainfocus.com/scripts/catalog/oow16.jsp?event=javaone&search=CON2633&search.event=javaone

GitHub的使用
MySQL的使用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市舞丛,隨后出現(xiàn)的幾起案子耘子,更是在濱河造成了極大的恐慌,老刑警劉巖球切,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谷誓,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡吨凑,警方通過(guò)查閱死者的電腦和手機(jī)捍歪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)鸵钝,“玉大人糙臼,你說(shuō)我怎么就攤上這事《魃蹋” “怎么了变逃?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)怠堪。 經(jīng)常有香客問(wèn)我揽乱,道長(zhǎng)末患,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任锤窑,我火速辦了婚禮,結(jié)果婚禮上嚷炉,老公的妹妹穿的比我還像新娘渊啰。我一直安慰自己,他們只是感情好申屹,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布绘证。 她就那樣靜靜地躺著,像睡著了一般哗讥。 火紅的嫁衣襯著肌膚如雪嚷那。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天杆煞,我揣著相機(jī)與錄音魏宽,去河邊找鬼。 笑死决乎,一個(gè)胖子當(dāng)著我的面吹牛队询,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播构诚,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蚌斩,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了范嘱?” 一聲冷哼從身側(cè)響起送膳,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎丑蛤,沒(méi)想到半個(gè)月后叠聋,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盏阶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年晒奕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片名斟。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡脑慧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出砰盐,到底是詐尸還是另有隱情闷袒,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布岩梳,位于F島的核電站囊骤,受9級(jí)特大地震影響晃择,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜也物,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一宫屠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧滑蚯,春花似錦浪蹂、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至斥赋,卻和暖如春缰猴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疤剑。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工滑绒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人隘膘。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓蹬挤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親棘幸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子焰扳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容