Những vấn đề thời sự khi lên Div và làm dự án

Framgia có hẳn bộ phận chuyên trách về đào tạo đó là Framgia Education (viết tắt là Edu), dưới Edu sẽ phụ trách training các bạn về các kiến thức về ngôn ngữ các bạn học, về quy trình làm việc, về sử dụng git, redmine để quản lý source code và phân chia công việc, hay từ việc thiết kế database, vẽ ERD cũng nhưng nâng cao khả năng teamwork khi làm cùng dự án với các bạn khác.

Thơi gian training dưới Edu thường cũng không dài, chỉ đủ cho mỗi bạn làm khoảng 2 project hoặc một phần là do các trainer ít nên nhiều lúc không thể sát sao để chỉ dạy các em được chi tiết các vấn đề.

Hôm nay mình muốn đưa ra một vài ý kiến, trao đổi hay là góp ý để chính các em trainee có thể chủ động học tập tìm hiểu thêm để có thể khi làm dự án trên Div sẽ nhanh bắt kịp với dự án hay làm việc dễ dàng hơn:

1. Git

  • Quy trình: Thông thường khi làm việc thì branch được sử dụng cho quá trình phát triển sẽ là develop. Và mỗi khi làm một issue mới mọi người sẽ pull code mới nhất từ develop về và checkout sang một nhánh mới và làm task trên này, hoặc rebase khi có code mới hơn.

  • Dùng ssh hay https: Rất nhiều bạn (cả những bạn đã làm khá lâu) khi clone code về sẽ chọn https (web URL) để clone code, và mỗi lần pull, push code sẽ tay to nhập username/password, câu hỏi của mình với các bạn khi đó là:

     Me: Có biết dùng ssh không
     Sb: Có anh ạ
     Me: Sao ko dùng
     Em nhập cho đỡ quên mật khẩu
     :| (loncaiban)
    

    Rồi có cái pull nào cứ commit --amend liên tục mới thấm không nói đến các vấn đề về securiry mà công ty áp dụng bật 2 Factor Authentication cho tài khoản github.

    Các bạn có thể thao khảo cách tạo, cài đặt ssh key cho tài khoản github của cá nhân ở đây: https://help.github.com/articles/connecting-to-github-with-ssh/

  • Config git: Các bạn sẽ cảm thấy rất mệt mỏi khi cứ phải git status, git diff file_name, git log --online, git checkout master ... liên tục.

    Vậy tại sao không đặt alias để đơn giản hoá việc này, mình thường xuyên làm như vậy, đơn giản như sau:

     - git config alias.st status
     - git config alias.co checkout
     - git config alias.br branch
     - git config alias.lol "log --oneline"
     - git config alias.loll "log --oneline -19"
    

    và giờ mình chỉ việc git st, git co develop ... Bạn có thể đặt như bạn muốn, miễn là mình nhớ và sử dụng.

    Ngoài ra một số config quan trọng của git mình thấy khá cần thiết bạn có thể tham khảo

     - git config core.editor vim // editor to use for editing messages
     - git config core.fileMode false // whether or not to track changes to the executable bit of files
    

2. IDE hay Editor:

  • Môi trường phát triển phần lớn là trên Ubuntu, việc dùng các phần mềm có bản quyền sẽ vi phạm đến quy định của công ty. Mình nói đến đây tức là đang chia sẻ về một IDE khá lớn và nổi tiếng được nhiều bạn mới lên Div lựa chọn, đó là phpstorm. Cá nhân mình không thích phpstorm vì nó quá nặng, mở lên đã thấy mệt mỏi rồi, chỉ đơn giản thế thôi. Mình thích sublime textvscode
  • Dùng IDE hay Editor nào là do các bạn quyết định, chắc là mỗi thứ sẽ có điểm mạnh riêng của nó và vấn để mình muốn nói ở đây là sử dụng phím tắt trên các IDE/Editor. Hầy sao lại ko ctrl + p để tìm file, ctrl + d để chọn các cụm từ giống nhau, ctrl + x để xóa một dòng ...
  • Với cụm từ tìm kiếm "Phím tắt trong sublime text" các bạn sẽ tìm được rất nhiều tổ hợp phím tắt. SỬ dụng phím tắt giúp tăng tốc độ làm việc, giảm thiểu các rủi ro khi code (khi sửa tên của một biến được sử dụng khá nhiều). Và đặc biệt hơn sử dụng phím tắt trông bạn pro hơn rất nhiều =))

3. Thành thạo một chút về vim

  • Chạy lệnh sau:

    sudo apt update
    sudo apt install -y vim
    
  • Bạn đã cài đặt vim, một editor thần thánh. Ưu điểm của VIM là mọi thao tác đều có thể thực hiện thông qua các phím tắt, vì vậy bạn không cần dùng tới con chuột khi dùng VIM nữa. Cũng chính vì vậy nên VIM có một lượng phím tắt đồ sộ đủ để làm nản lòng bất cứ ai có ý định học sử dụng nó.

  • Mình nói vậy không phải khuyên bạn bỏ qua Sublime text, phpstorm, vscode để chuyển qua dùng hẳn vim (nếu làm được thế thì tốt biết bao).

  • Trong quá trình làm việc bạn sẽ thường xuyên thao tác thông qua terminal và đôi khi git status rồi git diff file_name bạn sẽ thấy à mình còn một số dòng debug, lại phải switch qua IDE, mở file đó lên, tìm dòng đó và xoá, cũng ngốn ít công, thay vì đó bạn sẽ làm:

     - vi file_name // Mở file cần sửa
     - :line_number // Nếu biết dòng đó số bao nhiêu
     - dd // Xoá dòng
     - :wq // Lưu và thoát
    

    Nếu không rõ dòng bao nhiêu bạn cũng có thể tìm kiếm cụm từ bằng cách /die

  • Bạn cũng thường xuyên phải làm việc với file csv, sử dụng vim để chỉnh sửa file đó rất tiện.

  • Một ví dụ khác là config cấu hình của server khi bạn cầm nắm server dự án, hoặc đơn giản hơn là cấu hình nginx trên local. Những thao tác này sử dụng vim sẽ là phù hợp hơn cả.

  • Đúng là sẽ e ngại khi bước đầu sử dụng vim, nhưng tin mình đi, bạn sẽ thấy thích vim thôi ✌️

  • Bạn không biết đâu, dùng vim trông bạn bá lắm, bạn có thể loè gấu của mình -_- chỉ với một dòng lệnh thôi git diff chẳng hạn sẽ có vô vàn thứ hiện ra trên terminal của mình và cô ấy sẽ ồ à ú ớ vì thấy người yêu mình bá quá =))

Trên đây là một vài chia sẻ cho các bạn new bie thôi, bạn cũng có thể chia sẻ thêm những điều bạn thấy cần thết giúp các em mới lên div cải thiện thêm skill để làm việc tự tin hơn bằng các comment. Cảm ơn các bạn đã đọc bài.