Angular – vũ khí hạng nặng của Front-end Developer?

Angular là một JavaScript framework dùng để viết giao diện web ( Front-end ), được tăng trưởng bởi Google. Hiện nay, Angular đang được sử dụng bởi rất nhiều những công ty lớn : Forbes, General Motors, Upwork …
Muốn trở thành Front-end Developer giỏi, bạn không hề không biết đến sự sống sót của Angular .

Đọc bài phỏng vấn của ITviec với anh Trần Thuận Nghĩa – Software Engineer tại VinID để biết:

  • Angular là gì? Cách phân biệt AngularJS và Angular là gì?
  • Có nên bắt đầu sự nghiệp ở vị trí Front-end Developer?
  • Tố chất cần thiết để trở thành Front-end Developer?
  • Tài liệu tham khảo về Angular và lời khuyên cho Front-end Developer

Xem thêm việc làm Angular trên ITviec

Tiểu sử: Anh Nghĩa có gần 6 năm kinh nghiệm làm việc với Angular nói riêng và Front-end nói chung. Anh trải qua nhiều vị trí ở một số công ty như: Developer ở 2Click Solutions, Technical Leader ở Smartlog Vietnam… Hiện tại anh đang là Software Engineer tại VinID.

Chào anh Nghĩa. Em khá ngạc nhiên với background của anh, anh có thể nói một chút về nó?

Trước đây anh từng học lớp Cử nhân kĩ năng, ngành Công nghệ thông tin tại trường Đại học Khoa học tự nhiên. Trong thời hạn học ở trường, anh cũng tham gia một số ít cuộc thi lập trình và mang về một số ít phần thưởng. Ví dụ như giải 3 cuộc thi lập trình ACM toàn nước .
Nhưng vì cảm thấy chán và một phần ham chơi ( cười ) nên anh đã bỏ học giữa chừng để đi làm luôn .
Thời gian đó anh bị mọi người chỉ trích rất nhiều, ai cũng bảo anh không làm được gì đâu. Anh đã cố gắng nỗ lực rất nhiều để chứng tỏ cho họ thấy rằng không có bằng Đại học thì vẫn hoàn toàn có thể thăng quan tiến chức trong việc làm, người ta tuyển mình vì năng lượng chứ không phải vì tấm bằng .
Và như em thấy đó, anh không thất nghiệp mà vẫn theo đuổi việc làm Developer cho đến tận giờ đây .

Công việc đầu tiên sau khi anh dừng sự nghiệp học tập?

Anh làm Partner cho Sino Corporation. Công ty này bán những loại sản phẩm về mã vạch ( barcode ), trách nhiệm của anh là viết ứng dụng đi kèm giúp sử dụng loại sản phẩm. Đây cũng là lần đầu anh tiếp xúc với Angular .

Angular là gì vậy anh?

Angular là một JavaScript framework dùng để viết giao diện web ( Front-end ), được tăng trưởng bởi Google .
Anh lấy ví dụ : thông thường nếu chỉ làm bằng tay, em sẽ làm ra được 10 cây viết / ngày nhưng nếu sử dụng công cụ máy móc, em sẽ làm ra được 100, thậm chí còn 1000 cây viết / ngày .
Angular so với Developer cũng như công cụ ở trên vậy, nếu không sử dụng framework này thì sẽ mất rất nhiều thời hạn để hoàn thành xong giao diện web .

Đây có phải là lý do duy nhất khiến Developer sử dụng Angular?

Anh nghĩ ngoài tiết kiệm ngân sách và chi phí thời hạn thì Developer còn sử dụng Angular vì một số ít nguyên do :

  • Angular được “chống lưng” bởi Google, nó khiến Developer có cảm giác được đảm bảo. Mặc nhiên, họ sẽ ám thị rằng framework này khó mà bị “khai tử”, vì vậy cứ yên tâm sử dụng.
  • Cộng đồng người dùng lớn nên nếu có thắc mắc gì cũng sẽ nhanh chóng được giải đáp.
  • Giúp phát triển Ứng dụng trang đơn (Single-page Application). Đây là ứng dụng chạy trên browser mà không bắt buộc phải tải lại trang khi sử dụng.

Cá nhân anh thích Angular còn chính bới framework này được viết bằng ngôn từ TypeScript do Microsoft tăng trưởng, dễ đọc ( readable ), dễ bảo dưỡng ( maintainable ) .

Sự khác biệt giữa AngularJS và Angular là gì vậy anh?

AngularJS là từ được được dùng để nói về Angular 1 ( sinh ra năm 2009 ), được viết bằng JavaScript .
Còn Angular là từ gọi chung cho Angular 2 trở lên ( sinh ra năm năm nay ), được viết bằng TypeScript – phiên bản nâng cao của JavaScript .
Kiến trúc của Angular và AngularJS khác nhau trọn vẹn và hiện tại AngularJS cũng không còn được Google tương hỗ tăng cấp nữa .

Công việc thường ngày của anh khi ở vị trí Front-end Developer?

Cũng như những công ty theo quy mô Scrum, bên anh tổ chức triển khai họp mỗi ngày để nói về những yếu tố đang gặp phải .
Chẳng hạn : chưa nhận được API từ team Back-end hay API chưa có đủ thông tin. Sau đó anh bắt tay vào xử lý những việc làm :

  • Viết và chỉnh sửa giao diện theo yêu cầu. Chẳng hạn: viết xử lý cho các hiệu ứng (animations), thay đổi các yếu tố (elements), các nút (buttons)…
  • Sử dụng Git để quản lý source code.
  • Review code, review UI/UX.
  • Viết component có thể tái sử dụng.
  • Định nghĩa bộ style button, icon, color … cho hệ thống và áp dụng.
  • Tối ưu performance của website: tốc độ load trang, hình ảnh…

Anh thấy nếu so sánh với Back-end Developer thì việc làm của Front-end Developer khó hơn vì Back-end chỉ cần bảo vệ “ code chạy là được ”, input cái này sẽ output ra cái kia. Trong khi so với Front-end, code chạy được là một chuyện, còn đưa lên giao diện như thế nào lại là chuyện khác .
angular-la-gi-3

Sai lầm đáng nhớ nhất và bài học anh rút ra?

Trước đây, anh mắc phải sai lầm đáng tiếc khi viết code ở phía giao diện dẫn đến trang đó bị crash – nghĩa là khi một trang phải giải quyết và xử lý quá nhiều tài liệu thì bộ nhớ ( memory ) không chạy nổi .
Khi những bạn báo bug thì anh mới phát hiện code của anh trong lưới ( grid ) bị loop – thực trạng vòng lặp, cứ nửa giây lại gọi hàm kiểm tra tài liệu trong lưới .
Đối với lưới chỉ có 2-3 dòng thì không sao nhưng khi tăng lên 100 dòng thì bị crash. Cụ thể thì khi Tester kiểm thử, họ test chi tiết cụ thể đơn hàng quá ít nên không thấy xảy ra yếu tố gì cả. Nhưng khi release và mở màn cho người mua sử dụng, chi tiết cụ thể đơn hàng lên đến hàng trăm, hàng ngàn dòng thì xảy ra lỗi .
Tuy không gây ra hậu quả gì nghiêm trọng, người mua cũng không phàn nàn gì nhưng dù sao, cũng là lỗi của anh khi không lường trước được điều này. Anh đã đổi lại syntax trong code, mất thêm 2 ngày để sửa lỗi .
Sau này, anh có đọc những đề xuất kiến nghị ( recommend ) từ trang chủ của Angular thì cũng thấy nói là không nên viết vậy. Phải chi anh biết sớm thì tốt hơn rồi .
Rút kinh nghiệm tay nghề, anh theo dõi những bài viết về Angular tiếp tục hơn ( đa phần trên trang Medium ), cứ 8 h sáng hàng ngày anh lại nhận được bài viết mới tương quan đến những tiêu chuẩn mà anh đã chọn .

Anh đọc các bài chia sẻ kinh nghiệm về Angular để biết vấn đề có tồn tại. Tất nhiên không thể thuộc nỗi tất cả các trường hợp (case) nhưng khi cần, mình biết là nó có tồn tại để tìm lại.

Ví dụ : Em đọc báo và biết đến sự sống sót của máy hút bụi. Sau này khi em có nhu yếu làm sạch bụi bẩn mà không tốn nhiều thời hạn và công sức của con người, em nhớ ngay là có công cụ với tính năng đó để tìm kiếm và mua nó .
Ngoài ra, khi test, anh không chỉ chăm sóc đến tính năng mà còn xét cả năng lực xảy ra yếu tố. Ví dụ : thay vì test trên số đơn hàng, anh sẽ chăm sóc hơn đến số cụ thể đơn hàng …

Có điều gì về nghề Front-end Developer mà anh cảm thấy ngạc nhiên?

Anh thấy nhiều bạn đang hiểu sai về Front-end Developer. Họ nghĩ bọn anh ngoài code, còn phải biết cắt file photoshop ra file HTML nữa ( cười ) .

Kỹ năng và tố chất cần thiết với Front-end Developer?

Có trách nhiệm với công việc.

Chưa biết mình làm tốt hay không tốt nhưng hãy cố gắng nỗ lực đi đã. Đừng chỉ làm đối phó, làm với tâm lý “ code chạy là được ”. Nếu biết những rủi ro đáng tiếc tiềm ẩn thì hãy xử lý nó trước và luôn tìm cách để tăng hiệu suất thao tác .

Trước kia, anh chỉ viết component dùng chung cho dự án Bất Động Sản ( A ) mà anh đang làm. Sau này, khi chuyển sang dự án Bất Động Sản ( B ) khác, anh muốn sử dụng lại những component này thì anh phải copy rồi paste sang. Khá mất thời hạn và trong trường hợp những component ở A có đổi khác thì B cũng không update được .
Vậy nên anh đã chuyển những component này thành những package trên npm, chỉ cần tải ( install ) package và phiên bản tương ứng là hoàn toàn có thể sử dụng được .

Có chút kiến thức về UI, UX.

Ở một số ít công ty nhỏ, không có kinh phí đầu tư thuê Designer thì Front-end Developer phải làm luôn trách nhiệm phong cách thiết kế UI, UX. Vậy nên bạn phải tự học hỏi mà rút kinh nghiệm tay nghề từ những ứng dụng xung quanh, xem vì sao phần giá thì người ta hay sử dụng màu đỏ, nút này để màu xám, thông tin kia được in đậm … .
Như khi anh tìm hiểu thêm ứng dụng kế toán MISA, anh thấy người dùng không muốn bấm quá nhiều nút và hiển thị quá nhiều thông tin không thiết yếu. Nếu sau này, anh có làm ứng dụng tựa như thì anh sẽ không mắc phải lỗi đó .
Anh nhớ thời xưa có một lần anh tự ý đổi giao diện Front-end vì thấy không hài hòa và hợp lý, khi đó anh còn làm Technical Leader cho Smartlog. Đa số cấp dưới của anh đều phản ứng lại, nói rằng : đổi giao diện mà không báo với người mua thì không được, giao diện mới khó nhìn, nhìn không quen … Nhưng anh vẫn giữ nguyên quan điểm .
Như Facebook đó, họ đổi giao diện đâu có báo trước với mình, những người dùng sau cũng không biết giao diện trước như thế nào …
Sau đó thì người mua vẫn dùng giao diện mới thông thường. Thực tế là ai cũng có xu thế phản ứng với những biến hóa nên nhiều lúc mình phải phân biệt xem cái nào hài hòa và hợp lý và giữ quan điểm .
angular-la-gi-1

Luôn luôn cập nhật công nghệ, phiên bản mới với những cái mình đang làm.

Ứng dụng / ứng dụng của mình viết bằng Angular 4 nhưng phiên bản mới nhất đã lên đến Angular 8, Angular 9 mà vẫn không update ( tăng cấp ) vì ngại rủi ro đáng tiếc thì cũng không tốt .

Anh có nghĩ Front-end Developer là khởi đầu tốt cho một bạn mới bước vào ngành IT?

Cái đó còn tuỳ vào sở trường thích nghi của mỗi người. Nếu bạn không muốn làm sâu về data hay nghiên cứu và phân tích mạng lưới hệ thống thì hoàn toàn có thể chọn Front-end .
Nhưng nếu muốn tiến xa hơn trong sự nghiệp, anh khuyên những bạn nên theo học chính quy để được dạy về cách tư duy logic như lập trình hướng đối tượng người dùng, cấu trúc tài liệu và giải thuật …, giúp bạn hiểu thực chất của ngôn từ lập trình .
Còn nếu chỉ xem Front-end như một việc làm tay ngang, chỉ đơn thuần copy và paste rồi làm tựa như miễn sao ra được giao diện thì sự nghiệp sẽ có số lượng giới hạn .

Một bạn mới trở thành Front-end Developer (chưa có kinh nghiệm thực tế) nên làm gì nếu dự án đầu tiên quá phức tạp?

Nếu dự án Bất Động Sản phức tạp, bạn ấy nên đặt câu hỏi với những người đi trước trong team, quan tâm không nên hỏi quá nhiều. Hãy đặt mình vào vị trí người được hỏi, họ còn có việc làm riêng, không hề ngồi giải đáp cho bạn mãi được .
Bản thân anh cũng vậy, anh chỉ hỏi những ý chính ( theo kiểu từ khóa ) rồi sau đó tự khám phá thêm .
Chẳng hạn, anh hỏi :

  • ở Front-end đang xài những thư viện gì ?
  • tổ chức triển khai những thư mục ( module ) như thế nào ?
  • tính năng từng thư mục là gì ?
  • có gì cần chú ý quan tâm hay không ?

Chứ không hỏi : “ Code chỗ này nghĩa là gì vậy anh ? ” nhiều lần .

Những tài liệu anh đã từng tham khảo về Angular và Front-end?

Anh tham khảo khá nhiều tài liệu nhưng anh đánh giá cao nhất những nguồn này:

  • Angular.io: website giúp người mới tìm hiểu và làm quen với Angular. Bạn sẽ biết những khái niệm, syntax cơ bản trong Angular và cách tạo 1 project Angular ra sao.
  • Khóa học Angular từ cơ bản đến nâng cao: nhận diện những lỗi thường gặp khi sử dụng Angular và biết cách xây dựng một ứng dụng thương mại điện tử với Angular, Firebase, Bootstrap 4
  • Angular 2 Notes for Professionals: ebook miễn phí, được tổng hợp và biên soạn dựa trên những chia sẻ của các chuyên gia Angular trên Stack Overflow. Trình bày tất tần tật các tính năng của Angular cũng như các mẹo hữu ích để làm việc hiệu quả với chúng.
  • Angular Crash Course for Busy Developers: Khóa học này khá hữu ích với những developer bận rộn, chỉ cần dành ra 10 giờ học, bạn sẽ nắm được những kiến thức chủ chốt nhất về Angular framework.

Robby2

Robby2

Bạn có phải là Front-end Developer và là “fan” của Angular? Bạn nghĩ bài viết này có thể giúp ích cho các Developer khác? Chia sẻ ngay để giúp cộng đồng Developer cùng phát triển.

Xem thêm việc làm Front-end Developer trên website ITviec

Source: https://wikifin.net
Category: Blog

Leave a Comment

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *