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