làm ngân hàng dạy tôi vài thứ về phần mềm
trước khi qua làm AI tôi có 1 năm làm software cho ngân hàng — bidv. lúc nhận job tôi cũng hơi lưỡng lự vì nghe "enterprise" là thấy chán. giờ nghĩ lại, đó là lúc tôi học được nhiều nhất về cách viết phần mềm.
vài thứ đáng viết ra.
cái đầu tiên, cũng là quan trọng nhất: code chạy được trên production mới là code thật. ở trường thì code xong, nộp bài, xong. làm ngân hàng thì code của bạn quản lý tiền thật của người thật. tiền mà sai là có người gọi lúc 3 giờ sáng.
tôi nhớ có lần deploy bản update tối thứ sáu. bài học: đừng deploy tối thứ sáu. mọi thứ ok đến 11h đêm thì transaction treo. may mà có rollback script. bài học: luôn có rollback script.
hệ thống cũ không phải muốn là thay được. lúc vào tôi thấy SOAP ở khắp nơi và nghĩ "sao không chuyển qua REST". rồi tôi hiểu: có hàng trăm service của đối tác đang nói chuyện bằng SOAP. không thể bắt tất cả bọn họ đổi.
cách tôi làm là viết một adapter layer — bên ngoài vẫn SOAP, bên trong gọi REST API. partner không biết có gì thay đổi. team internal cũng không phải đụng XML.
mock server là thứ bị đánh giá thấp nhất. tôi maintain một cái mock server giả lập khoảng 50 endpoints của hệ thống core. không có nó thì mỗi developer muốn test phải VPN vào hệ thống thật, mà hệ thống thật không phải lúc nào cũng available.
tốn 2 ngày setup. tiết kiệm hàng trăm giờ về sau. mấy thứ này không ai khen đâu, nhưng không có là khổ.
code càng đơn giản càng tốt. hồi sinh viên tôi thích viết code "thông minh" — design pattern các thứ. đi làm rồi mới thấy: code mà một đứa junior mới vô đọc 5 phút hiểu được mới là code tốt. không ai muốn debug một đống abstraction lúc 3 giờ sáng.
một năm làm ngân hàng dạy tôi nhiều hơn 4 năm đại học. không phải về công nghệ — mà là về cách phần mềm vận hành trong thế giới thật.
nếu bạn đang là sinh viên và có cơ hội làm ở mấy chỗ "enterprise" bị chê là chán, thử đi. bài học ở đó theo bạn lâu hơn tech stack.