Tải bản đầy đủ (.docx) (19 trang)

BÁO cáo THỰC tập java software engineer trainee

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (227.62 KB, 19 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP

Java Software Engineer Trainee
Công ty thựctập
Ngườiphụtrách
Thựctậpsinh

: ELCA Việt Nam
:NguyễnĐăngTuấn

:TrươngCơngTấnPhát
TP. HồChí Minh, tháng 07năm 2021
\


LỜI MỞ ĐẦU
Vớisựpháttriểnnhanhchóngmặtcủathịtrườngphầnmềm,
córấtnhiềuhướngđivàcáchpháttriểnphầnmềmkhácnhau,
ngồiviệclên
ý
tưởngđểpháttriểnmộtphầnmềmtừđầu, thìcáchtạo ra mộtsảnphẩmmớibằngcáchpháttriển,
cậpnhậthoặcthayđổinhữnghệthống
hay
phầnmềmcósẵnđểphùhợpvớinhucầuriêngbiệtcủatừngcánhânhoặctổchứccũngđanglàmột xu
hướngmớitrongngànhcơngnghiệpphầnmềmtrênthếgiới.
Hiện nay ở Việt Nam cũngđãcórấtnhiềucơng ty pháttriểncácphầnmềm hay
hệthốngmãnguồnmởnhưvậy, mộttrongsốđólàcơng ty ELCA Việt Nam. Làmộtcơng ty
phầnmềmđaquốcgiacónguồngốctừThụySĩ,


ELCA
khơngchỉpháttriểncácsảnphẩmphầnmềmmới,
màcịnđảmnhậncảnhữngdựánmãnguồnmởtheoucầukháchhàng.
Làmộtsinhviênthuộc
khoa
Cơngnghệphầnmềm,
emmuốnmìnhđượctiếpxúcvớitấtcảcácloại,
cáccách,
cáchướngđicủaviệcpháttriểnphầnmềm, đồngthờicảmthấycácmụctiêuvàgiátrịcủa ELCA
rấtphùhợpvớiđịnhhướngcủabảnthân, nênemđãquyếtđịnhchọn ELCA Việt Nam
lànơibắtđầuthựctập, tìmkiếmthêmnhữngkiếnthứcvàkinhnghiệmthựctếđầuđờichobảnthân.

LỜI CẢM ƠN
TrântrọnggửilờicảmơnđếnCơng
ty
đãtạođiềukiệnchoemcócơhộiđượcthựctậptạicơng ty.

ELCA

Việt

Nam

Kỳthựctậptuyngắn, nhưngemđãđượchọcrấtnhiềuthứtừsựchỉdẫnnhiệttìnhcủacácanh
Coach
trongphịng
ban.
Emkhơngnhữnghọcđượcnhữngkỹthuật,
kiếnthứctrongcácdựánthựctế,
màcịntíchgópđượcchobảnthânnhữngkinhnghiệmkhilàmmộtnhânviêntrongcơng

ty,
cáchgiaotiếp, làmviệcnhómtrongcácdựánchung. Chânthànhcảmơncácanhchịđãgiúpđỡ,
hướngdẫncũngnhưtheosátđểgóp ý emtrongsuốtqtrìnhthựctập.
ĐặcbiệtemxingửilờicảmơnsâusắcđếnanhNguyễnĐăngTuấn,
đãgiúpemtraining
rấtnhiềuvềkiếnthức
ReactJS,
Spring,
đếnnhữngkhókhăntrongviệclàmquenvớimơitrường
mới,
cũngđượcanhchỉdẫnrấttậntình. Vớikiếnthứcrộngvàsâucủaanh, emđãhọchỏiđược
rấtnhiều.
Ngồi
ra,
emxingửilờicảmơnđếnanhTrầnHánh
Minh
vàNguyễnĐứcTrung, đãhỗtrợanhTuấntraining chuyênsâutăngcườngvề Spring
backend.
EmcũngxingửilờicảmơnđếnanhTrầnVănThơi,
ngườihướngdẫnemtronggiaiđoạntìmhiểunghiệpvụ.
Anh


đãhỗtrợemrấtnhiềuvềkiếnthức
nghiệpvụcủasảnphẩmIpension,
cũngnhưquytrìnhlàmviệcvàcáchthứcsửdụngcáccơngcụ Jira, Bitbucket, Vertec, ….
Cũngxincảmơnthầycơtrong
tạođiềukiệnemlàmbàibáocáonày.

khoa


Cơngnghệphầnmềmđãnhiệttìnhhỗtrợ,

TrươngCơngTấnPhát
TpHCM, ngày07tháng 07năm
2021

NHẬN XÉT CỦA KHOA

MỤC LỤC
MỤC LỤC 3
Chương 1: Giớithiệucông ty thựctập
1. Giớithiệucông ty ELCA
2. Sảnphẩmcủacông ty

4

3

3


Chương 2: Nội dung thựctập

5

1. Tìmhiểucơng ty vàcáckỹnăngcơbảntrongcơng ty 6
2. Giaiđoạn training kiếnthứccơbản
3. Thựchiện project


6

15

Chương 3: Chi tiếtvềdựán

15

1. Giớithiệuvề PIM Tool 15
2. User Stories

16

TÀI LIỆU THAM KHẢO

17

TỔNG KẾT 18

Chương 1: Giớithiệucơng ty thựctập

1. Giớithiệucơng ty ELCA
ELCA đượcthànhlậpvàonăm 1968 tạiThụySĩ, làmộttậpđồnchuncungcấpcácgiảipháp
IT
chokháchhàng,
thiếtkếlạicácphầnmềmchophùhợpvớinghiệpvụtừngdoanhnghiệpucầu.
Sau hơn 50 nămthànhlậpvàpháttriển, ELCA đãkhẳngđịnhđượcvịthếvàniềm tin ở
kháchhàngbằngnhữnggiátrịmàcông ty manglại. Thông qua nhữngdựánlớnnhư:
Giảiphápquảnlý
ID

chongườidânvàtộiphạm

HợptácvớichínhphủThụySĩ,
GiảipháphệthốngbánvéchoUEFA,… ELCA đãdầnchứngminhđượcđâylàmộtcơng ty
đáng tin cậyvàđãgâydựngđượcmốiquanhệvớirấtnhiềukháchhànglớntrêntồnthếgiới.


ELCA cóvănphịngđặttạiThụySĩ, Tây Ban Nha, Pháp, Anh, Đức, Ý vàViệt Nam,
vớihơn
1300
nhânviênlàmviệctạitấtcảcácvănphịngtrênthếgiới.
ELCA
đãcókinhnghiệmlàmviệcvớigần 1000 dựánchokháchhàng, doanhthunăm 2019 đạt 170
triệu Franc.
ELCA xâydựngphầnmềmdựatheoquytrình SCRUM. MỗidựấnsẽcónhiềuSCRUM
teamđảmnhậnmộtphầnchứcnăngkhácnhau.
2. Sảnphẩmcủacơng ty
Nhữngsảnphẩmphầnmềmcủa ELCA đượcpháttriểnnhắmtớitệpkháchhàngrấtđadạng,
từtrongnướcchotớingồinước,
từchínhphủchotớicácdoanhnghiệp,
tậpđồnlớn.
Làmộtcơng ty chuncungcấpcácgiảipháp, cácsảnphẩmtrảirộngtrênnhiềulĩnhvựcnhư:
Quảnlýbảohiểm (IPENSION), Quảnlýdữliệudoanhnghiệp (CRM), Quảnlýđịnhdanh
(trustID), Bánvétrựctuyến (Secutix), Chứngnhận Y tế (HealthnGo),..
Mộtsốnhữnggiảiphápnổibậtcủa ELCA như:
 Secutix: ban đầulàmộtgiảipháp, vàsauđóđãtáchriêng ra thànhmộtcơng ty
dướisựquảnlýcủa
ELCA,
lànơicungcấpcácnềntảngbánvétrựctuyếnđượcpháttriểnchophùhợpvớitừngtổchức.
 Ipension:

nềntảngquảnlýbảohiểmchochínhphủThụySĩ,
pháttriểnbộ
suite
tổngqtđể bao qtcáctrườnghợpquảnlýbảohiểmhiện nay tùythuộcvào business
ngườidùnghướngđến.
 trustID: làmộtdịchvụtạovàquảnlý ID chocáctổchứclớnnhưChínhphủ, Y tế,
Giáodục, Doanhnghiệp, cơngdân,…

Chương 2: Nội dung thựctập

Chươngtrình onboarding
dànhchonhânviênmớiđikèmvớiđánhgiáchấtlượngnhânsựđầuvàocủa ELCA được
chia làmhaigiaiđoạn: Giaiđoạn training kiếnthứccơbảnvàgiaiđoạn thựchiện
project.
− Giaiđoạn training kiếnthứccơbản:
o Trainer sẽtiếnhànhhướngdẫncáckiếnthứcvềcôngnghệ, các best practices,
coding
convention,
performance,
vànhữngquytắc
coding
kháccầntuântheotrong ELCA.
o
Kếtthúc training, trainer sẽyêucầuthựchiệncàiđặtmộtsảnphẩm,
trongđóyêu
cầusảnphẩmphảiápdụngtấtcảkiếnthứcđãđược
training
trướcđó. Thựchiện trong 1 tuần.
o
Trongngàycuốicùngcủa

training
sẽlàngàyđánhgiá.
Thựctậpsinhsẽtiếnhành
soạn
slide,


thuyếttrìnhvềnhữngkiếnthứcđãhọcđượctrongquátrình
training.
Cuốicùnglà demo sảnphẩmvới leader, trainer và delivery unit manager
bằngtiếng Anh. Cácanhchịsẽđặtcâuhỏi, đọc source code chi
tiếtđểxemxétviệcnhững
quytắc,
các
best-practices
đãđượcápdụngvàosảnphẩm hay chưa.
o
Sau
khithuyếttrình,
cácanhchịsẽđưa
ra
quyếtđịnhcótiếptụcchothựctậpsinh vàogiaiđoạn training tiếptheo.Nếucả
3 đềuđồng ý, thựctậpsinhsẽđượcsắpxếp vàomột team đểtiếptục training
nghiệpvụ.
− Giaiđoạnthựchiện project cơbản:
o Trainer sẽthựchiệnhướngdẫnvềnghiệpvụ (business) củasảnphẩm.
o Training vềnghiệpvụtrong 1 tuần.
o Sau khi training, sẽthựchiệnmộttínhnăngcủasảnphẩmtrong 1 tháng.
Leader


mentorsẽtheodõikếtquảhằngngàyđểđánhgiáchấtlượngcơngviệccủathựctậ
p sinh.
o Đểđượcnhậnchínhthứcvàomột Team,
thựctậpsinhphảithuyếttrìnhthànhcơng
vềnghiệpvụcủahệthốngvàthựchiệnđượctínhnăngđượcđặt ra.
o

Sau
khihồnthành
training
nghiệpvụ,
thựctậpsinhsẽtrởthànhnhânviênchính thứccủacơng ty nếucónguyệnvọng.
Kếtthúcgiaiđoạn training nghiệpvụcũng làlúckếtthúcthựctậptạicơng ty.

1. Tìmhiểucơng ty vàcáckỹnăngcơbảntrongcơng ty
Thờigian : 1 ngày
Nộidung :
Giớithiệuvềcơng ty, cáchtổchứccủacơng ty.
Đượcnghengườiphụtráchgiớithiệuvềcơng
ty,
qtrìnhthànhlậpvàpháttriển,
cáchthứctổchức, cácquytrìnhphầnmềmđặctrưngcủacơngty .
Ngồi
ra,
thựctậpsinhcịnđượcgiớithiệuvềcáchthứclàmviệctrongcơng
ty
nhưthờigianlàmviệc,
cácquyđịnhcầnphảitnthủ,
cáchsửdụngcáccơngcụtraođổi,
cáckhotàiliệunộibộcủacơngty,…

Kếtquả :
Hiểuthêmnhiềuđịnhhướng, nguntắccủa ELCA, qtrìnhthànhlậpvàpháttriển.
Biếtđượccáchlàmviệc, hoạtđộngtrongmơitrườngthựctế ở mộtcơng ty phầnmềm.
2. Giaiđoạntranningkiếnthứccơbản
2.1. Tìmhiểuvềmơitrườnglậptrình.
Thờigian: 1 buổi (cùngvớingàygiớithiệucông ty).


Nội dung:
− Thựctậpsinhsauđósẽđược mentor dẫnđếnvịtrílàmviệc, hướngdẫn setup máy,
càiđặt cáccơngcụvàmơitrườnglậptrình Maven, Java, IntelliJ,…

Thựctậpsinhđượcucầutìmhiểuvềmơitrườnglàmviệcvừađượccàiđặtcủamình.
Thựchiện: Thựchànhsửdụngcácphầnmềmnêutrên. Đọctàiliệuvề Maven,
IntelliJ.
Kếtquả :Hiểuđượccáchthức maven hoạtđộng,
nhữngtrạngtháicủanóvàcáchsửdụngcơbảnđểquảnlýmộtsảnphẩm.

2.2. Tìmhiểuvề Java.
Thờigian: 2 ngày.
Nội dung:


Ơnlạicáckiếnthứccơbảnvề Java, ơnlại OOP, cáccúphápcơbản,
lớpvàđốitượng, interface, kếthừa, Generics, Packages, phạm vi
truycậptrong OOP, Nested class, Collections.
− Ônlạimộtsốthànhphầnkháccủa Java: Java NIO.2, Lambda Expression,
method references, DateTime API, thưviện Apache Commons.
− Tìmhiểuvề Stream API trong Java.
Thựchiện:

− Tiếnhànhtìmhiểucáckiếnthứcnêutrênđặcbiệtquantâmtới java 8 sauđó
checkpoint cùng mentor.
Kếtquả:
− Hiểuvàcóthểápdụngnhữngkiếnthứcđãđượcnêutrên.
2.Tìmhiểuvề Design Pattern cơbản, ngunlý SOLID vàxửlý
Exception.
Thờigian: 1 ngày.


Nội dung:
Về Design Pattern: Tìmhiểucác design pattern đượcdùngnhiều Observer
Pattern, Builder Pattern, Factory Pattern, Singleton Pattern.
Vềnguyênlý SOLID: Tìmhiểuvề Single Responsibility Principle, Openclosed principle, Liskov Substitution Principle, Interface Segregation Principle,
Dependency Injection.
Vềxửlý Exception: Tìmhiểuvềcấutrúccây Exception trong Java.
Phânbiệt Checked và Unchecked exception: Checked exception
sẽđượckiểmtrabởi compiler, thựchiệnxửlýbằng try/catch. Unchecked exception
cóhailoại: RuntimeException (gây ra bởiviệclậptrìnhkhơngđúng) và System Errors
(gây ra bởihệthống, vdnhưkhihếtbộnhớ). Runtime exception khôngnênđược catch.
Thực hiện:
− Tiếnhànhtìmhiểucáckiếnthứcnêutrênsauđó checkpoint cùng mentor.
Kếtquả:
− Hiểuvàcóthểápdụngnhữngkiếnthứcđãđượcnêutrên.
2.4. Tìmhiểuvề Debugging trên IntelliJ.
Thờigian: 1 ngày.
Nội dung:
− Tìmhiểucáchthứcsửdụng breakpoint, sửdụng window debug, set value,
vàcácthủthuật debuggingkháccủa IntelliJ.
Thực hiện:
− XemcáctàiliệucủaJetbrainsvề IntelliJ đượcđềcậptronggiáốn

training.
Kếtquả:
− Hiểuvàcóthểápdụngnhữngkiếnthứcđãđượcnêutrên.
− Cóthểthựchiện debug mộtchươngtrìnhtrên IntelliJ.
2.5. Làmbàitập Java tổnghợpkiếnthứcđãđượchọc ở trên.
Thờigian: 1 ngày.


Nội dung:
Công ty sẽcấpchothựctậpsinhmộttập tin companies.csv. Vớiđịnhdạngnhưsau:
ID

Name

Foundation Date

Capital

Country

isHeadQuarter

1

ELCA VN

1998

200000


VN

1

2

ABB Ltd

01-01-93

320000

CH

1













Nhiệmvụchúng ta phảiviếtmộtchươngtrình, chứacáctínhnăngsau:
− Nhập file vàohệthống. Lưu ý:

Phảithiếtkếhệthốngđểcóthểđảmbảocókhảnăngmởrộngđểtươngthíchvớicácđịnhd
ạngkháctrongtươnglai (XML, XLSX,…). − Xuất ra mànhình capital
tổngcủacác Country là CH.
− Xuất ra mànhìnhtêncủatấtcảcơng ty nằmtrong country CH.
− Sửachươngtrìnhđểtheodõithưmục “import”. Nếucósựthayđổivề file
trongthưmụcvàchươngtrìnhhỗtrợđịnhdạng, thìsẽ import file
mớivàovàxuấtlạikếtquả. − Sửachươngtrìnhcủabạnđểcóthể import đượcmột file
rấtlớn (30MB) trong 1s (Ápdụng design pattern đãhọctừtrướcvàobàitập ).
Thựchiện:
− Tiếnhànhtìmhiểucáckiếnthứcnêutrênsauđó checkpoint cùng mentor.
Kếtquả:
− Hiểuvàcóthểápdụngnhữngkiếnthứcđãđượcnêutrên.

2.6. Nghiêncứu Multilingual (đangơnngữ)
Thờigian: 1 buổi.
Nội dung:
Trainer đưa ra cáccâuhỏivàthựctậpsinhtựnghiêncứu,
saukhihồnthànhbáocáolại với trainer vềkếtquảnghiêncứucủamình:
− Tạisao multilingual lạicầnthiết ?
− Thànhphầnnàocủahệthống (messages, labels, data…) thườngsẽđượccàiđặt
multilingual ?


− Cónhữngcáchphổbiếnnàodùngđểlưutrữvàtruyxuấtcác component multilingual
tĩnh ?
− Cónhữngcáchphổbiếnnàodùngđểlưutrữvàtruyxuấtcác component multilingual
động (multilingual data nhưtênsảnphẩm, mơtả,…) ? Cungcấpsơđồ ERD mơtả.
− Làmcáchnàođể search engine cóthểtìmđượccácthơng tin multilingual data ?
Thực hiện:
− Tiếnhànhtìmhiểucáckiếnthứcnêutrênsauđó checkpoint cùng mentor.

Kếtquả:
− Hiểuvàcóthểápdụngnhữngkiếnthứcđãđượcnêutrên.
2.7. Nghiêncứu Coding Convention (quychuẩn code)
Thờigian: 1 tiếng.
Nội dung:
− Nghiêncứutàiliệu SunCodeConvention.pdf
Thựchiện:
− Tiếnhànhtìmhiểucáckiếnthứcnêutrênsauđó checkpoint cùng mentor.
Kếtquả:
− Hiểuvàcóthểápdụngnhữngkiếnthứcđãđượcnêutrên.
2.8. Nghiêncứu Spring
Thờigian: 2 ngày.
Nội dung:
Vì Spring làmộtđềtàirấtrộng, vìvậytronggiớihạnthờigian training, trainer
chỉyêu cầuthựctậpsinhnắmđượccácphầnsau:


Cáchthứchoạtđộngcủacác annotation sau: @Configuration, @Bean,
@Component,
@Controller, @Service, @Repository, @Autowired
(cóthểdùnghoặckhơngdùngvới @Qualifier).
− Chứcnăngcủa Dispatcher Servlet, Handler Mapping, Controller,
ModelAndView, ViewResolvervà View.
− Cáchthứcnhững component trêntươngtácvớinhauđểcóthểtạo ra một Response từ
Request của User (cóvẽhình flow minhhoạ).




Hiểurõvàcóthểgiảithíchđược


mứcđộ
chi
tiếtcáchthứchoạtđộngcủacáccomponents
thườngđượcsửdụng:
@RequestMapping/@RequestParam,
@RequestBody/@ResponseBody,
@ModelAttribute, @InitBinder.
− Giảithíchđượcvìsao Controller cóthểtrảvềmột String hoặcModelAndView. Khi
nào nêndùng String vàkhinàonêndùngModelAndView.
− Giảithíchcáchsửdụng JSR-303 (Bean validators) với Spring.
Lỗisẽđượctrảvềđếnuser bằngcáchnào.
− Chúng ta cónênthựchiệnlưu data dướidạngmột instance member trong Controller
hay khơng.
− SựkhácbiệtgiữaRestController, và Controller.
− Thờiđiểm Bean đượctạo ra vàbịhuỷ.
Thực hiện:
− Tiếnhànhtìmhiểucáckiếnthứcnêutrênsauđó checkpoint cùng mentor.
Kếtquả:
− Hiểuvàcóthểápdụngnhữngkiếnthứcđãđượcnêutrên.
2.9. Làmbàitập Spring
Thờigian: 1 ngày.
Nội dung:
− Hồnthiệnmộtsảnphẩmđangđượcthựchiện. Checkout source code từ bitbucket
của cơng ty.
Nội dung chi tiết:
− Hồnthànhtínhnăng search theotêntrên 1 hệthốngquảnlýtàingunđơngiản.
Thựchiện:
− Tiếnhànhtìmhiểucáckiếnthứcnêutrênsauđó checkpoint cùng mentor.
Kếtquả:

− Hiểuvàcóthểápdụngnhữngkiếnthứcđãđượcnêutrên.
2.10. TìmhiểuvềBảomậthệthống, Surrogate Key và Concurrent
Update Thờigian: 5 tiếng.
Nội dung:


− NghiêncứuvềBảomậthệthống (application security), Surrogate Key
vàConcurrent Update.
Thực hiện:
− Tiếnhànhtìmhiểucáckiếnthứcnêutrênsauđó checkpoint cùng mentor.
Kếtquả:
− Hiểuvàcóthểápdụngnhữngkiếnthứcđãđượcnêutrên.
2.11. Tìmhiểuvề SQL
Thờigian: 3 tiếng.
Nội dung:
− Ơntậpviếtcáccâu SQL cơbảnđếnnângcao. Nội dung bao gồmcáclệnh query
cơbản, lệnh insert, lệnhtruyvấnlồng.
Thực hiện:
− Tiếnhànhtìmhiểucáckiếnthứcnêutrênsauđó checkpoint cùng mentor.
Kếtquả:
− Hiểuvàcóthểápdụngnhữngkiếnthứcđãđượcnêutrên.

2.12. Tìmhiểuvề Unit Test
Thờigian: 2 tiếng.
Nội dung:
Nghiêncứucácnội dung sau:
− Tạisaolạicần Unit test.
− Đọcvàtìmhiểu JUnit: Cáchthứcsửdụngcơbản.
− Đọcvàtìmhiểu FEST: Các syntax cơbản, cáchsửdụngthưviện FEST. −
Code coverage: Tìmhiểuvềcácloại coverage (Line coverage, Branch

coverage và Condition coverage).
− TìmhiểuvàsửdụngthưviệnJaCoConhằmthốngkê Code Coverage.
Thực hiện:
− Thựchiệntìmhiểucácvấnđềnêutrên. Trìnhbàyvới
trainerđểkiểmtra.


Kếtquả:
− Hiểuvàápdụngđượcnhữngkiếnthứcđãhọc.
2.13. TìmhiểuvềHibernate
Thờigian: 2 ngày.
Nội dung:
− Đọcvàhiểucơbảnvề ORM.
− Tìmhiểucác JPA annotations.
− Tìmhiểuvềcáchthức mapping cácmốiquanhệtrong entity:
− Tìmhiểuvề Spring Data JPA.
− TìmhiểuvềQueryDSL: Tíchhợpvới Maven, dùngcác query types, querying,
sửdụng joins, cácsửdụngkhác, ordering, grouping, subquery.
− Tìmhiểuvềvịngđờicủacác Hibernate Entities.
Thựchiện:
− Tiếnhànhtìmhiểucáckiếnthứcnêutrênsauđó checkpoint cùng mentor.
Kếtquả:
− Hiểuvàcóthểápdụngnhữngkiếnthứcđãđượcnêutrên.
2.13. ThựchiệnbàitậpvềHibernate
Thờigian: 1 ngày 1 buổi.
Nội dung:
− Làmquenvới Spring Data vàQueryDSLđểđưa ra càiđặtchomột repository củamột
entitytronghệthống.
− Làmquenvới Transaction trong Spring.
− Giảiquyếnvấnđề Lazy Initialization của Hibernate.

− Giảiquyếtvấnđề N + 1 query của Hibernate.
− Đảmbảo audit log lnlnđượclưulạitrongtấtcả transaction, dù transaction cóbị
roll back hoặckhơng.
Thựchiện:
− Tiếnhànhtìmhiểucáckiếnthứcnêutrênsauđó checkpoint cùng mentor.
Kếtquả:


− Hiểuvàcóthểápdụngnhữngkiếnthứcđãđượcnêutrên.
2.14. Tìmhiểuvề CSS
Thờigian: 1 ngày.
Nội dung:
− Cácvấnđềcơbảntrong CSS: Giớithiệuvề CSS, Syntax.
− Selectors trong CSS: Rules, Document Tree, Selectors.
− Formatting với CSS: Background, Text, Font.
− Cáckháiniệmcơbản: Box Model, Border, Outline,
Margin, Padding. − Positioning trong CSS: Absolute
positioning, Relative positioning.
− Bootstrap.
− TìmhiểuvềFlexBox. LàmbàitậpFlexBox.
− CSS pseudo class và pseudo element.
Thựchiện:
− Tiếnhànhtìmhiểucáckiếnthứcnêutrênsauđó checkpoint cùng mentor.
Kếtquả:
− Hiểuvàcóthểápdụngnhữngkiếnthứcđãđượcnêutrên.

2.15. TìmhiểuvềJavascript
Thờigian: 1 ngày.
Nội dung:
− Cáckháiniệmcơbản: Javascriptlàgì,

sửdụngJavascriptvàonhữngmụcđíchgì ?−
TìmhiểuvềnhữngthànhphầnlõitrongJavascript.
Thựchiện:
− Tiếnhànhtìmhiểucáckiếnthứcnêutrênsauđó checkpoint cùng mentor.
Kếtquả:
− Hiểuvàcóthểápdụngnhữngkiếnthứcđãđượcnêutrên.
2.16. TìmhiểuvềReactJS


Thờigian: 3 ngày.
Nội dung:
− Học ReactJS trênkhóahọcudemycơng ty
cungcấpđểnắmrõnhữngkiếnthứccănbảnnhấtvề ReactJS.
Thựchiện:
− Tiếnhànhtìmhiểucáckiếnthứcnêutrênsauđó checkpoint cùng mentor.
Kếtquả:
− Hiểuvàcóthểápdụngnhữngkiếnthứcđãđượcnêutrên.
2.17. Tìmhiểuvề Coding best practices
Thờigian: 1 buổi.
Nội dung:
− Tìmhiểuvềcác coding best practices đangđượcápdụngtại ELCA.
Thựchiện:
− Tiếnhànhtìmhiểucáckiếnthứcnêutrênsauđó checkpoint cùng mentor.
Kếtquả:
− Hiểuvàcóthểápdụngnhữngkiếnthứcđãđượcnêutrên.

3. Thựchiện project
Sau
hơnmộtthángđược
training

nhữngcơngcụ,
cơngnghệ,
kiếnthứcnềntừcơbảnđếnnângcao,
thựctậpsinhđãnắmđượccáckỹthuậtvànội
dung
cơbảnkhilậptrình. Coach sẽcho trainee thamgiavàomộtdựánthậtcủacơng ty.
Chi tiếtđồánsẽđượcnói ở chương 3.

Chương 3: Chi tiếtvềdựán

1.

Giớithiệuvề PIM Tool

1.

Tổngquandựán


PIM Tool (Project Information Management Tool) làmộtDựán CRM củacơng ty,
vềbảnchấtlàmột
Solution
đượcpháttriểnđểthêmvào
Dynamics
CRM,
vớimụcđíchlàquảnlýdữliệuvàthơng tin củamột Entity mớilà Project.
Solution
PIM
Tool
ban

đầuđãđượcthiếtkếsẵn
database
models.
Nhiệmvụcủangườipháttriểnlàdựatrênđó,
thêmcácràngbuộcthuộctính,
thêmcácgiaodiệntrựcquanđểquảnlý Project chongườidùng.
Mỗi User Story trongdựánđềucóhaiphần requirement làcơbảnvànângcao.
Kếhoạchlàsẽtậptrunghồnthiệnphầncơbảntrước, sauđónếucịndưthờigian, cóthể quay
lạiphầnnângcaocủacác User Story đểhồnthiệnsau.

2. Các User Stories củadựán
2.
1.

User Story 01 – Project creation and updation
Mơtả:
Vớivaitrịlàmộtngườiquảnlýcác projects (Project Manager), ngườidùngcóthểtạo ra
một
record
của
project,
vàdễdàngtìmkiếmlại
project
đósaunày.
Đồngthờicũngcóthểcậpnhậtthơng tin củamột project đãtồntạitrong CRM.
Kếtquảchươngtrìnhcầnđạtđược:

 Form chophépnhậpthơng tin, tạomới, cậpnhật, vàxóacác projects.
 Mộtsố Field của form như Project Number, Customer, Project Group,…lànhững
field bắtbuộcnhập. Ngoài ra Project Number cịnđóngvaitrịnhưmộtkhóathaythế

(Alternative Key).


 Members là Field chứadanhsáchcác Employees lànhânviênđảmnhận Project.
Đồngthờicómộtsubgridbêndưới member hiểnthịdanhsáchnhânviênđược binding
từchuỗi members.
2. User Story 02 – Projects list
Mơ tả:
Vớivaitrịlàmộtngườiquảnlýcác
projects
(Project
Manager),
ngườidùngcóthểquansáttrựcquanmộtdanhsáchcác
projects
tồntạitronghệthống.
Đồngthờitrêndanhsáchđó, ngườidùngcóthểtìmkiếmmột project đểxemvàcậpnhậtthơng
tin củanónếucần.
Kếtquảchươngtrìnhcầnđạtđược

 Cầntạomột table trêngiaodiệnđểthểhiệndanhsách
nàyvàotrongmột Dashboard CRM.
 CóthểthựchiệnmộtsốthaotácnhưTìmkiếm,
mởliênkếttừmộtrecord,…

chọn

TÀI LIỆU THAM KHẢO
[1] Java />[2] JUnit4 Getting started: FEST Assert 2.x Wiki:

projects,

record,

đưa

table
xóa,


JaCoCo
Introduction: />[5] Hibernate Annotation:
/>[6] Spring Data References: />data/jpa/docs/current/reference/html/#repositories
[7] QueryDSL documentation:
/>[8] Transactions, Caching and AOP: understanding proxy usage in Spring :
spring
[9] CSS tutorial: />[10] CSS Selector: />[11] Bootstrap Getting started:
/>[12] FlexBox foggy: />extras/
[13] Typescript in 30 minute: />[14] All about Javascript: />
TỔNG KẾT
Nhưvậy,
emđãthamgiavàhồnthànhđượcmộtdựánđầutiêncủacơng

ty

trongthờigianthựctập,
làdựán
PIM
Tool.


Dùđâylàdựánđầutiên,

emvẫnrấtcốgắnghồnthiệnđầyđủucầutừcơbảnđếnnângcao,
kếtquảđạtđượcđãtốthơnmongđợirấtnhiều.
Nếusaunàycịncóthờigianđểbảotrìvàpháttriểnthêmchodựán,
emsẽcóthểhồnthànhtốthơnnhữngucầunângcaotừphíakháchhàng.
Chânthànhcảmơnsựgiúpđỡcủacácanhchịtrongphịng ban ELCA Engineering ở
ELCA,
đặcbiệtlàanhNguyễnĐăngTuấnđãtheosátvàhướngdẫn,
giúpemhồnthànhtốtdựánvàcảđợtthựctậpnàytại ELCA.



×