Re: [心得] 兩年全端工程師經驗分享 推薦畢業生看

作者: qrtt1 (有些事,有時候。。。)   2018-03-03 12:22:19
※ 引述《richard07250 (blazing)》之銘言:
: Soft_Job版惠我良多,剛好趁最近要轉職來分享我第一份正職工作得到的經驗
: 第一次發長文,如果排版傷眼還請見諒
: 背景介紹:
: 私立科大(明志)畢業,在校實習一年(app測試基本沒有技術性),全端工作經
: 驗一年半,正在跑離職手續,也確定下一份offer了
: 後端:Java+Spring 稍微玩過一點Node Js.Python
: 前端:JavaScript AngularJs
: 這篇文是給誰看的?
: 如果剛畢業不知道要怎麼進入這個行業,或是想要轉職找不到方向,希望我可
: 以給你們一點幫助
: 導覽:
: 首先第一件事請打開你的Google,他是所有工程師最好的朋友,要習慣跟他相
: 處,在這篇文中,如果遇到你/妳看不懂的詞彙,請問問google老師,不要求
: 要完全搞懂這個詞在幹甚麼,但至少要知道它在幹嘛,這對面試很有幫助
: 紅色 標註我認為一定要知道的名詞,有空最好學會
: 黃色 是知道一下,不一定會用到的東西
: 本文開始
能有這樣循環式的回饋真是太棒了 :)
: 一. Java後端
: 現在後端語言到底哪個比較優勢還是眾說紛紜,不過應該不會有人否認Java絕
: 對在台灣占有很大的市場,如果沒學過Java這個章節可能會看得有點痛苦,如
: 果是學C#之類的後端語言,可以直接跳過了
: 剛畢業的大學生在校學的語言可能是C C++,我也是如此,進入第一間公司的時
: 候我是完全不會Java的狀態,也非常慶幸可以遇到一間願意培養的公司
: 假設你已經學會基礎的Java了,進入企業第一個一定要聽過的是
: Spring,非常多企業級後端都是使用這個框架,Spring大幅的改變
: 了寫程式的概念,核心思想Inversion of Control還有容器的概念
: ,剛入門的時候可能有點不直覺,了解這些概念會是第一個門檻
還有大量的 Template Method Pattern
跟後來加入 DDD 的 Repository 概念
: 接下來是Database,我遇到的現象是企業都以為畢業生會用DB,可是通常
: 不會,在學會Spring之後,通常你會需要一個ORM來跟DB作互動(當然也有人直
: 接使用JDBC),簡單來說ORM就是幫你把DB裡面的資料轉換成物件的型態,讓
: Java可以直接使用,我使用的是MyBatis,大多數企業在使用Hibernate
: ,基本上只要學會一種,要換學其他ORM會快很多
其實也越來越多老手反而不太用 ORM 了,或是說不直接使用 ORM 的東西。
但還是要看 team 內實作目標的走向,
如果是偏大量統計資訊的東西,raw sql 會比較方便
或是專案初期,要快速建立 model (或傳統的 term: entity relation)
時用 ORM 會相當的迅速,但之後效能調整時,再適情況要不要改寫
在 DDD 融入後,抽層再上一層的 Spring Data Repositories
^^^
(感謝版友指出 typo)
是比較需要認識的,但下面的實作可以是 ORM 或其它 no sql 的 solution
但因為 Java EE 專案都比較長壽,若是偏金融類的,那可能要學一下
相對 old fashion 的 hibernate,經典值得一讀再讀
Java Persistence with Hibernate 2nd Edition
by Christian Bauer (Author), Gavin King (Author),
Gary Gregory (Author)
另外,不管 DB 是直接用 Hibernate 是,API 層的 JPA 它還有個簡單的好處。
(JPA 提出後 hibernate 漸漸開始相容它)
只要寫的 sql 語法夠通用,可以抽換正式的 db 與 in-memory db
直接跑 unit test (這其實算偽裝的整合測試)
在初期有用,後期上了最佳化的 sql 後,可能就不能完全相容 in-memory db
: 跟前端互動的Web Framework(台灣好像很少用這個詞不過一定會用到),它是後
: 端程式跟前端網頁互動的關鍵,比較主流的有Spring MVC.Struts 2
如果不幸你的公司有在用 Struts 2,那就塊陶吧。
http://bit.ly/2HYz8vB <== 年年都很精采
若你逃不了,先確認 Struts 2 是對內服務,還是對外服務。
對內的,那還勉強可以忍一下,先問公司有沒有偷樑換柱的計劃
沒有的話,再問,是否會需要開發 Strtus 2 的東西
若你不用參與,那勉強可以再留一陣子。
: 前後端互動有分兩種是Server-Side Rendering跟Client-Side Rendering
: 這個就比較進階了
: 打到這邊有點累了 如果大家覺得這種文章有一點用的話我過幾天繼續寫XD
: 預計還會寫 前端.一些基本電腦常識.面試的技巧
稍為補充了一下 :) 期待後續^^
作者: richard07250 (blazing)   2018-03-03 12:36:00
感謝您的建議 我們公司沒有再用 只是聽到很多同業有用所以列上來 我們是用spring mvcORM的部分我是覺得對新人來說比較親切 也很多企業再用才特別提到由於我們公司比較傳統 BDD這開發方式幾乎都沒有機會用到 (我也是剛剛google才找到這個詞w) 我會去研究一下controller service repository層我們是有獨立的
作者: rabido   2018-03-03 13:09:00
Repository應該是DDD(Domain-Driven Design)的一種pattern吧? 跟BDD(Behavior-Driven Development)應該是沒有關係的?
作者: johnny94 (32767)   2018-03-03 13:16:00
這邊好久沒有這種文了 推
作者: wildli0422 (wild)   2018-03-03 13:53:00
推推推
作者: pig0038 (顆顆)   2018-03-03 15:27:00
推推 Struts 沒有救了,光安全性問題每幾年就會發生一次大漏洞
作者: loveu8 (RA1-推廣)   2018-03-04 07:39:00
哈哈,謝謝qrtt1轉貼文章,朋友說才發現到看完之後,這些內化的技術,還是很缺乏的感謝分享!
作者: gmoz ( This can't do that. )   2018-03-04 09:14:00
JSF: 沒人愛我QQ
作者: pttworld (批踢踢世界)   2018-03-04 11:46:00
JSF+JPA+Websphere+Oracle 經手二間銀行的解法
作者: loveu8 (RA1-推廣)   2018-03-04 14:56:00
我好像看到有人問我 TWJUG了,我在考慮一下,最近要出國XD怕這麼趕,大家聽不到想聽的,就有點可惜了~
作者: gmoz ( This can't do that. )   2018-03-05 13:02:00
用JSF+JPA+Primefaces開發過一些專案,開發速度真的快只是若要改比較細節,本身就要有一些功力才改的動
作者: lovdkkkk (dk)   2018-03-05 15:34:00
JSF 正宗官方 JEE 框架沒人愛 QQ
作者: gmoz ( This can't do that. )   2018-03-05 16:48:00
可能前一代版號的名聲太臭 QQ

Links booklink

Contact Us: admin [ a t ] ucptt.com