Categories
Gambaru News

Fermyon huy động 20 triệu USD, làm tool cho lập trình viên ứng dụng đám mây

Matt Butcher và Radu Matei đã làm về công nghệ container trong nhiều năm; “container” trong ngữ cảnh này đề cập đến các gói phần mềm chứa tất cả các yếu tố cần thiết để chạy trong bất kỳ môi trường nào, từ máy tính để bàn đến máy chủ.

2 Nhà sáng lập của Fermyon
2 Nhà sáng lập của Fermyon

Với vai trò kỹ sư tại Deis, tiếp theo là DeisLabs sau khi Microsoft được mua lại vào năm 2017, nhóm của họ đã khám phá lĩnh vực container và đã thành công xây dựng trình quản lý package Helm cũng như Brigade và các công cụ khác.

Trong suốt quá trình đó, họ phải đối mặt với vô số vấn đề với các container – cụ thể là tốc độ và chi phí.

Những thất bại đã thúc đẩy họ và một số ‘cựu binh’ DeisLabs khác thành lập Fermyon, công ty hôm nay đã khép lại vòng tài trợ Series A trị giá 20 triệu đô do Insight Partners dẫn đầu với sự tham gia của Amplify Partners và các nhà đầu tư thiên thần.

Fermyon cung cấp Fermyon Cloud, dịch vụ đám mây được quản lý, cho phép các nhà phát triển nhanh chóng xây dựng các microservices hoặc các phần ứng dụng hoạt động độc lập nhưng cùng nhau (ví dụ: nếu một microservice bị lỗi, nó sẽ không làm hỏng các microservice khác).

Fermyon Technologies
Fermyon Technologies

Butcher đề cập đến tiêu chuẩn mở cho phép trình duyệt web chạy mã nhị phân:

“Fermyon đang xây dựng làn sóng dịch vụ đám mây tiếp theo trên đỉnh WebAssembly. Ban đầu được viết cho trình duyệt, WebAssembly có tất cả những điểm nổi bật của một nền tảng điện toán đám mây xuất sắc… Sự kết hợp các tính năng của nó khiến chúng tôi rất phấn khích. Fermyon bắt đầu xây dựng một bộ công cụ cho phép các nhà phát triển xây dựng, triển khai và sau đó vận hành các tệp nhị phân WebAssembly trong bối cảnh đám mây ”.

Butcher lập luận rằng WebAssembly vượt trội hơn container ở một số khía cạnh, chẳng hạn như thời gian khởi động và khả năng tương thích trên các hệ điều hành bao gồm Windows, Linux và Mac cùng với các nền tảng phần cứng như Intel và Arm.

Ông cũng khẳng định rằng nó an toàn hơn vì nó có thể thực thi một cách an toàn ngay cả những mã không đáng tin cậy.

Để khám phá tiềm năng thay thế vùng chứa của WebAssembly, Fermyon đã phát triển Spin, một công cụ dành cho nhà phát triển mã nguồn mở để tạo các ứng dụng đám mây của WebAssembly.

Fermyon Cloud là sự phát triển của công việc này, cung cấp một nền tảng nơi khách hàng có thể lưu trữ các ứng dụng đó.

Butcher nói:

“Fermyon Cloud trao quyền cho các nhà phát triển triển khai… các ứng dụng được viết bằng nhiều ngôn ngữ khác nhau (chẳng hạn như Rust, .NET, Go, JavaScript) và trải nghiệm hiệu suất cực nhanh. Bất kỳ ai có tài khoản GitHub có thể tạo các ứng dụng WebAssembly trên đám mây… Mô hình tự phục vụ của nhà phát triển giảm thiểu sự khó khăn trong việc xây dựng ứng dụng bằng cách giúp các nhà phát triển không chỉ có thể viết và kiểm tra mã của họ trong môi trường sản xuất – và sau đó triển khai phiên bản hoàn chỉnh cho cùng môi trường được lưu trữ đó.

Fermyon Cloud cho phép các nhà phát triển tạo tối đa 5 ứng dụng web hoặc microservices và chạy chúng trong môi trường được lưu trữ miễn phí. Ngoài các ứng dụng lưu trữ, dịch vụ này cung cấp quản lý phát hành, truy cập nhật ký và cấu hình ứng dụng từ bảng điều khiển web.

Với các nhân viên hiện ở Châu Âu, Châu Á, Úc và Bắc Mỹ, trọng tâm của Fermyon là tiếp tục xây dựng các dự án thương mại và nguồn mở của mình, Butcher nói.

Fermyon Cloud sẽ mở rộng sang cung cấp dịch vụ thương mại “sẵn sàng cho doanh nghiệp” trong những tháng tới, ông nói thêm, vì Fermyon dự kiến ​​sẽ tăng gấp đôi số nhân viên 20 người vào giữa năm 2023 – nhấn mạnh vào sản phẩm, tiếp thị, quan hệ với nhà phát triển và vai trò cộng đồng.

Butcher cho biết:

“Chúng tôi có vị trí tốt để chống chọi với những cơn bão kinh tế vĩ mô do nguồn tài chính mà chúng tôi sẽ công bố hôm nay. Chúng tôi có nguồn quỹ để tồn tại vài năm.”

Đến nay, Fermyon có trụ sở tại Colorado đã huy động được 26 triệu đô la.

Nguồn: TechCrunch

Categories
All about Japan

Restaurant of Mistaken Order: Điều kì diệu chỉ xảy ra ở Nhật!

Có một nhà hàng ở Nhật tên gọi là “Nhà hàng của những order nhầm lẫn” (Restaurant of Mistaken Order), bạn sẽ thấy dòng thông báo rằng: “Chủ quán từ chối chịu trách nhiệm nếu các món ăn bị order sai”.

Nhiều người sẽ cảm thấy rất kỳ lạ khi có một nơi không thể thực hiện đúng theo yêu cầu của khách hàng. Vậy mà mọi thực khách đều rất vui vẻ, chấp nhận và thanh toán cho món ăn sai đó. Ơ, sao thế?

Nhà hàng Nhật: Khách vui vẻ dù bị sai món ăn
Nhà hàng Nhật: Khách vui vẻ dù bị sai món ăn

Đó là bởi vì tất cả nhân viên tại nhà hàng đều là những người đang sống chung với căn bệnh Alzheimer. Do đó, họ có thể nhớ, cũng đôi khi là không thể nhớ được món ăn mà thực khách đã gọi.

Restaurant of Mistaken Order là một concept ra đời vào năm 2017 tại Tokyo.

Đúng như tên gọi, khách hàng sau khi gọi món có thể sẽ không nhận được đúng món mà họ mong muốn.

Nhân viên nhà hàng chủ yếu là người già bị chứng bệnh mất trí nhớ
Nhân viên nhà hàng chủ yếu là người già bị chứng bệnh mất trí nhớ

Mặc dù khái niệm về kiểu nhà hàng như thế nghe có vẻ rất mới, nhưng đây thực sự phản ánh được tình trạng thực tế của xã hội Nhật Bản trong thế kỷ 21.

Như chúng ta đã biết, Nhật Bản là một quốc gia có tỷ lệ dân số già cao, điều đó khiến cho Alzheimer là một căn bệnh rất phổ biến ở đây.

Thế là nhiều thị trấn đã bắt đầu xuất hiện các dịch vụ tuyển dụng lực lượng lao động mắc chứng bệnh này.

Chủ nhà hàng Restaurant of Mistakne Order
Chủ nhà hàng Restaurant of Mistakne Order

Người chủ của Restaurant of Mistaken Order – Shiro Oguni chia sẻ:

“Chứng mất trí nhớ bị hiểu lầm rất nhiều. Mọi người thường cho rằng những bệnh nhân Alzheimer không thể làm bất cứ điều gì cho bản thân và thường bị cô lập khỏi xã hội. Chúng tôi muốn thay đổi xã hội này, vì vậy dù mất trí nhớ hay không, con người vẫn có thể sống hoà hợp với nhau.”

Dù có bệnh này hay không, con người vẫn có thể sống phù hợp với nhau
Dù có bệnh này hay không, con người vẫn có thể sống phù hợp với nhau

Trải nghiệm thực tế của nhiều khách hàng cho thấy, họ rất hứng thú với kiểu nhà hàng như thế này. Tất cả các nhân viên đều có khả năng xây dựng mối quan hệ với khách hàng, một kỹ năng rất quan trọng trong ngành dịch vụ.

Dù món có bị giao sai, nhưng thực khách dường như vẫn rất tận hưởng trải nghiệm theo cách nào đó.

Khách hàng rất hứng thú với trải nghiệm này
Khách hàng rất hứng thú với trải nghiệm này

Theo thống kê, 37% các đơn gọi món đều bị nhầm lẫn, nhưng 99% khách hàng đều phản hồi rất hài lòng và cảm thấy vui vẻ. Một phần là vì “mọi món trong thực đơn đều ngon”, vì thế khách hàng không phải quá lo lắng họ sẽ bị phục vụ một món có chất lượng kém.

Tham khảo: Tinhte.

Categories
Gambaru News

Microsoft ra mắt các dịch vụ bảo mật mới nhắm vào nhu cầu bảo vệ code trên đám mây

Tại hội nghị Ignite hôm 14/10, Microsoft đã công bố Defender Cloud Security Posture Management and Defender for DevOps, hai gói mới trong dịch vụ Defender for Cloud của công ty (trước đây là Azure Defender) dành cho quản lý phát triển phần mềm và bảo mật thời gian chạy (runtime) trên môi trường đa đám mây (multicloud) và nhiều pipeline.

Dịch vụ Defender for Cloud của Microsoft
Dịch vụ Defender for Cloud của Microsoft

Hiện đã có bản xem trước công khai, cả 2 cùng chạy với GitHub và Azure DevOps, với các tích hợp sản phẩm bổ sung.

CVP của Microsoft về bảo mật đám mây, Shawn Bice, cho biết Defender for DevOps và Defender Cloud Security Posture Management (gọi tắt là Defender CSPM) xuất phát từ những thách thức mà các công ty đối mặt khi sử dụng các dịch vụ cloud-native để triển khai và quản lý ứng dụng.

Những khách hàng này thường thiếu cái nhìn toàn diện và thiếu các biện pháp giảm thiểu thiệt hại được ưu tiên, khiến cho việc bảo mật mang tính phản ứng, thay vì chủ động.

Nói có sách mách có chứng.

Theo một báo cáo năm 2020 từ Orca Security, 59% nhóm an ninh mạng cho biết nhận được hơn 500 cảnh báo về bảo mật đám mây mỗi ngày – một phần lớn trong số đó là thông báo sai. Tool sprawl (tình trạng sử dụng quá nhiều công cụ) được cho là một thách thức trong việc duy trì bảo mật code.

Trả lời khảo sát của GitLab vào tháng 8, 41% các nhóm DevOps nói rằng họ đã sử dụng từ 6 đến 10 công cụ trong chuỗi công cụ phát triển của mình, khiến họ bỏ sót các vấn đề bảo mật.

Bice cho biết:

“Hành trình chuyển đổi đám mây tăng cường cho khách hàng của chúng tôi đã tạo ra nhu cầu cấp thiết về một giải pháp thống nhất nhằm quản lý bảo mật từ quá trình phát triển đến thời gian chạy trong môi trường đa đám mây và nhiều pipeline”.

Giao diện Microsoft Defender for Cloud
Giao diện Microsoft Defender for Cloud

Vì vậy, Defender CSPM tận dụng các thuật toán AI để thực hiện phân tích rủi ro theo ngữ cảnh của môi trường phát triển phần mềm. Các đề xuất và thông tin chi tiết về kết quả được đưa vào các nền tảng quản lý mã nguồn như GitHub và Azure DevOps để thúc đẩy nỗ lực khắc phục; mặt khác, người dùng có thể tạo luồng công việc được kết nối với các đề xuất bảo mật để kích hoạt khắc phục tự động.

Defender CSPM cũng cung cấp “truy vấn tấn công” mà nhóm bảo mật có thể sử dụng để khám phá rủi ro và đe dọa dữ liệu, cũng như bảng điều khiển hiển thị tất cả các quy tắc được triển khai trên môi trường nhà phát triển và các công cụ cho phép quản trị viên bảo mật xác định các quy tắc mới.

Đối với Defender for DevOps, nó cho thấy sức mạnh an ninh tổng thể của các cấu hình tài nguyên và mã ứng dụng tiền sản xuất. Các nhóm bảo mật có thể sử dụng dịch vụ này để kích hoạt các mẫu và file container image được thiết kế để giảm thiểu khả năng xảy ra cấu hình sai đám mây trong môi trường production.

Bice giải thích:

“Tận dụng [thông tin phân tích] trong Defender for Cloud, quản trị viên bảo mật có thể giúp các nhà phát triển ưu tiên các bản vá code quan trọng và chỉ định quyền sở hữu của nhà phát triển bằng cách kích hoạt quy trình làm việc tùy chỉnh.

Với việc triển khai Defender CSPM và Defender for Cloud, rõ ràng là Microsoft đang tìm kiếm miếng bánh lớn hơn trong phân khúc DevSecOps khổng lồ và ngày càng phát triển.

Grand View Research ước tính rằng thị trường dành cho DevSecOps – bao gồm các công cụ tự động hóa các phương pháp bảo mật ở mọi bước phát triển phần mềm – trị giá 2,79 tỷ USD vào năm 2020.

Các công ty khởi nghiệp bao gồm Spectral, nhắm vào việc phát hiện các vấn đề bảo mật tiềm ẩn trong cơ sở mã và nhật ký, và Cycode, cung cấp các công cụ để bảo mật đường ống DevOps, có thể bị coi là đối thủ cạnh tranh. Nhưng quy mô của Microsoft – và thực tế là cả Defender CSPM và Defender for Cloud đều miễn phí cho khách hàng của Defender for Cloud trong thời gian xem trước – mang lại lợi thế lớn cho nó.

“Microsoft cam kết tăng cường bảo mật cho tất cả mọi người với tiêu chuẩn bảo mật đám mây toàn diện trên môi trường đa đám mây.”

Xem video buổi giới thiệu 2 gói này của dịch vụ Defender for Cloud

Nguồn: TechCrunch

Categories
Gambaru News

Microsoft hợp tác với Meta, đưa Teams, Office, Windows và Xbox lên VR

Mối quan hệ đối tác lớn nhất của Microsoft và Meta kể từ thời Windows Phone

Microsoft Teams trên Quest VR headset
Microsoft Teams trên Quest VR headset

Tưởng chừng Microsoft và Meta đã đối đầu nhau vào năm ngoái, sẵn sàng cạnh tranh gay gắt cho tương lai công việc (the future of work) trong metaverse.

Nhưng hôm nay, cả hai thông báo họ đang hợp tác về cách mọi người sẽ làm việc và thậm chí chơi game trong thực tế ảo.

Điều này bắt đầu bằng việc Microsoft đưa các dịch vụ lớn nhất của mình – Teams, Office, Windows và thậm chí cả Xbox Cloud Gaming – vào headset Quest VR của Meta.

Đây là một mối quan hệ hợp tác đầy bất ngờ, chứng kiến ​​Microsoft và Meta kết hợp sức mạnh của họ. Microsoft nhận thấy cơ hội để mang Teams và các sản phẩm năng suất khác của họ vào một bộ headset VR đủ mạnh và Meta trở thành đối tác quan trọng trong kế hoạch metaverse lớn của mình.

Microsoft Teams trong VR
Microsoft Teams trong VR

CEO Satya Nadella của Microsoft cho biết:

“Chúng tôi đang mang trải nghiệm họp nhập vai của Microsoft Teams vào Meta Quest nhằm cung cấp cho mọi người những cách thức mới để kết nối với nhau. Bạn có thể kết nối, chia sẻ, cộng tác như thể bạn đang trực tiếp cùng nhau.”

Trải nghiệm Teams trên headset Quest Pro mới và Quest 2 sẽ bao gồm hệ thống hình đại diện (avatar) cho Teams của Meta và Teams nhận được hỗ trợ trong Horizon Workrooms của chính Meta.

Giám đốc điều hành Meta, Mark Zuckerberg cho biết trong sự kiện này.

“Mọi người sẽ có thể tham gia cuộc họp Teams trực tiếp từ Workrooms. Chúng tôi nghĩ rằng trải nghiệm đa thiết bị, đa màn hình này sẽ là nền tảng của văn phòng ảo trong tương lai.”

Văn phòng ảo trong tương lai này sẽ không chỉ dành cho các cuộc họp. Microsoft đang đưa Windows 365 lên Quest, nền tảng truyền trực tuyến các phiên bản Windows đầy đủ tới các thiết bị.

Microsoft và Meta hợp tác về metaverse
Microsoft và Meta hợp tác về metaverse

Nadella nói:

“Với việc đưa Windows 365 vào Quest, bạn sẽ có cách thức mới để truyền trực tuyến an toàn toàn bộ trải nghiệm Windows, bao gồm tất cả các ứng dụng, nội dung và cài đặt được cá nhân hóa vào thiết bị VR của bạn với toàn bộ sức mạnh của Windows và các ứng dụng Windows”.

Microsoft cũng đang đưa các phiên bản 2D của ứng dụng Office của mình lên Quest thông qua công nghệ PWA (Progressive Web Apps).

Đây sẽ không phải phiên bản 3D hoàn chỉnh của Office được thiết kế cho VR, nhưng nếu có nhu cầu về VR trong doanh nghiệp, thì có thể dễ dàng hình dung Microsoft sẽ điều chỉnh chúng trong tương lai.

Xbox Cloud Gaming thậm chí sẽ tiếp cận với headset Quest VR của Meta, cho phép người đăng ký Xbox Game Pass Ultimate phát trực tuyến trò chơi.

Nó sẽ không sống động như trải nghiệm thực tế ảo gốc cho các game Xbox, nhưng bạn sẽ có thể cầm bộ điều khiển Xbox và chơi chúng trên một màn hình khổng lồ được chiếu bên trong headset Quest.

Xbox Cloud Gaming trên Quest
Xbox Cloud Gaming trên Quest

Cốt lõi ở đây là mối quan hệ hợp tác chặt chẽ và bất thường này giữa Meta và Microsoft.

Mặc dù cặp đôi này đã hợp tác trong Teams cho các thiết bị Meta’s Portal và trên một số tích hợp cho SharePoint và Outlook, đây là mối quan hệ hợp tác lớn đầu tiên kể từ khi tích hợp sâu Facebook vào Windows Phone hơn một thập kỷ trước.

Microsoft dường như đang tự đặt cược vào future of work trong các tai nghe VR và AR, hay như cách Microsoft gọi chúng là thực tế hỗn hợp.

Microsoft trước đây đã thử nghiệm với tai nghe VR thực tế hỗn hợp Windows, nhưng họ không bao giờ sản xuất thiết bị của riêng mình và sản phẩm phần mềm còn mờ nhạt so với những tay chơi lâu đời hơn như Oculus (nay là Meta Quest) hay Valve và HTC.

Microsoft đã đầu tư nhiều hơn vào HoloLens, headset AR mà họ đã quảng cáo cho các doanh nghiệp như là tương lai của sự cộng tác (future of collaboration).

Alex Kipman, lãnh đạo nhóm Microsoft phát triển headset HoloLens của công ty và bộ điều khiển chuyển động Kinect, đã từ chức sau các cáo buộc lạm dụng bằng lời nói và quấy rối tình dục vào đầu năm nay. Điều đó khiến tương lai của HoloLens bị nghi ngờ, đặc biệt là khi có tin đồn cho thấy Microsoft đã loại bỏ kế hoạch cho HoloLens 3.

3D avatar của Microsoft Teams
3D avatar của Microsoft Teams

Chúng tôi vẫn đang chờ xem hình đại diện 3D của Microsoft Teams. Hình ảnh: Microsoft

Điều đó khiến thời điểm hợp tác Meta của Microsoft trở nên đặc biệt hấp dẫn, khi Nadella cố gắng đưa Microsoft trở thành công ty phần mềm và công cụ năng suất cho thiết bị VR thay vì nhà sản xuất.

Nadella nói:

“Chúng tôi đang thực hiện một cách tiếp cận để đảm bảo rằng phần mềm của chúng tôi có thể mang lại lợi ích cho người dùng trên tất cả các thiết bị yêu thích của họ và đó là lý do tại sao tôi rất vui mừng về những gì chúng tôi công bố ngày hôm nay và cách chúng tôi tập hợp sức mạnh của nhiều người”

Meta hiện có một đồng minh quan trọng trong nỗ lực biến metaverse thành hiện thực, cũng như có những dấu hiệu rõ ràng rằng đây sẽ là một môi trường đầy thách thức để đi đúng hướng.

Meta đã cố gắng trong nhiều năm để tiếp cận khách hàng doanh nghiệp thông qua nền tảng Workplace của mình, nhưng qua việc hợp tác chặt chẽ hơn với Microsoft Teams trong VR, đó là sự thừa nhận thất bại rõ ràng khi nói đến tương lai của các ứng dụng cộng tác và năng suất tại nơi làm việc.

Microsoft’s Mesh work for Teams đặc biệt ấn tượng trong các cuộc họp ảo năm ngoái, vì vậy sẽ rất thú vị khi xem cách công ty đưa điều đó vào headset Quest của Meta.

Vẫn còn quá sớm cho mối quan hệ đối tác này, nhưng nhiều thông tin chi tiết hơn về chính xác thời điểm những trải nghiệm này sẽ được tiết lộ trong những tháng tiếp theo. Bạn có thể sẽ nghe nhiều hơn về Teams và có lẽ là avatar metaverse 3D của Microsoft khi công ty tổ chức hội nghị Ignite ở Seattle, nơi họ sẽ thảo luận về future of work, bảo mật,…

Nguồn: The Verge

Categories
All about Japan

Giờ đây, người Việt đã có thể du lịch tự túc ở Nhật

Nhật Bản đã dở bỏ hoàn toàn các hạn chế biên giới nhập cảnh với du khách quốc tế. Kể từ ngày 11/10, du khách có thể du lịch tự túc đến Nhật Bản mà không chịu bất cứ giới hạn nào, gần quay về như thời điểm trước đại dịch.

Tuy nhiên, người nhập cảnh phải xuất trình giấy chứng nhận tiêm vaccine tối thiểu 3 mũi với những loại vaccine được WHO công nhận. Đồng nghĩa với việc nước này cũng công nhận các loại vaccine Sinopharm, Sinovac và Convidecia.

Du khách đến Nhật phải có chứng nhận tiêm vaccine ngừa Covid
Du khách đến Nhật phải có chứng nhận tiêm vaccine ngừa Covid

Nếu không có giấy chứng nhận tiêm chủng, du khách cần phải có kết quả xét nghiệm âm tính với COVID-19 trong vòng 72 giờ trước khởi hành.

Trong khi đó, các yêu cầu về kiểm dịch, xét nghiệm khi đến sẽ được bãi bỏ hoàn toàn cùng với hệ thống phân nhóm các quốc gia theo từng nhóm xanh, vàng, đỏ.

Hiện tại ở Nhật, người dân vẫn được yêu cầu thực hiện các biện pháp phòng ngừa để chống lại COVID-19.

Theo thống kế, khoảng 80% tổng dân số Nhật đã được tiêm chủng ít nhất 2 mũi, giấy chứng nhận tiêm chủng không được yêu cầu ở các điểm đến. Trong khi đó, nhiều điểm du lịch ở Nhật Bản đã dần mở cửa hoạt động và khôi phục trở lại. Mặc dù một số sự kiện và lễ hội vẫn tiếp tục bị huỷ bỏ.

Trước đó, từ ngày 10/6/2022, Nhật Bản đã mở cửa du lịch trở lại sau 2 năm kể từ khi đóng cửa vì đại dịch COVID-19.

Vào thời điểm đó, Nhật Bản chỉ cấp visa du lịch cho công dân đến từ 98 quốc gia vùng xanh. Du khách cần phải có giấy xét nghiệm PCR âm tính trước khi bay.

Thế nhưng, du khách bắt buộc phải đi theo tour trọn gói, có hướng dẫn viên. Lúc đó, du khách Việt Nam vẫn chưa thể đi du lịch đến Nhật do nước ta thuộc vùng vàng và không phù hợp với chính sách của Nhật.

Trong thời gian lưu trú khi đó, du khách cũng phải tuân thủ các biện pháp phòng ngừa lây nhiễm cơ bản, như đeo khẩu trang và sát khuẩn tay thường xuyên.

Đồng thời họ cũng phải đăng ký một chương trình bảo hiểm du lịch bao gồm đến các chi phí y tế liên quan đến COVID-19.

Nguồn: Japan Guide, Tinhte

Categories
Gambaru News

Trả lương bao nhiêu cho engineer? Startup này sẽ cho bạn biết

Việc tính toán những khoản phải trả cho nhân viên là một vấn đề phổ biến. Cụ thể, các startup thường xuyên vật lộn với việc trả lương thưởng vì họ cạnh tranh với các startup khác để tìm kiếm nhân tài.

Với Roger Lee, vấn đề liên tục xuất hiện khi anh đồng sáng lập Human Interest – nhà cung cấp 401(k), công ty đã đạt được vị thế kỳ lân vào tháng 8 năm 2021 và hiện nay có gần 700 nhân viên. (Lee không còn tham gia vào công việc hàng ngày của công ty này, mặc dù anh vẫn có chân trong hội đồng quản trị)

Lee nói:

“Việc tính toán lương thưởng cho nhân viên là một trong những nguồn gây khổ sở hàng đầu của chúng tôi. Chúng tôi sử dụng cái giống như 1,000 bảng tính để theo dõi và quyết định mức lương, cổ phần, tăng giảm lương, range lương và mức offer.”

“Khó mà có một cái nhìn tổng quan về lương thưởng nhân viên để đảm bảo rằng chúng ta đang trả lương cho mọi người một cách công bằng và cạnh tranh.”

Vì vậy, vào tháng 10 năm 2021, anh đã hợp tác với Teddy Sherrill – người bạn cũ ở Harvard để cho ra đời Comprehensive (Toàn diện) nhằm nỗ lực giải quyết vấn đề.

Hai nhà đồng sáng lập của Comprehensive
Hai nhà đồng sáng lập của Comprehensive

Công ty nổi như cồn, thông báo đã gọi được 6 triệu đô vòng hạt giống vào năm nay, được dẫn đầu bởi Inspired Capital và có cả sự tham gia của Floodgate, SV Angel cũng như những nhà sáng lập và giám đốc điều hành của Rippling, Wealthfront, Pilot.com, Thumbtack, Public.com và những bên khác.

Khách hàng mục tiêu của Comprehensive là startup, thế giới mà Lee quen thuộc, anh từng sở hữu 2 startup.

Có một vài startup đã nổi lên trong lĩnh vực này trong những năm gần đây.

  • Tháng 8, Complete đã công bố gọi được thêm 4 triệu đô la.
  • OpenComp có một sản phẩm tương tự hướng tới các công ty tăng trưởng cao đang tìm cách cải thiện việc tuyển dụng và giữ chân họ.
  • Compound được hậu thuẫn bởi Y-Combinator tìm cách giúp nhân viên công nghệ hiểu được mức lương thưởng của chính họ.

Lee hy vọng sẽ làm cho Comprehensive nổi bật so với các đối thủ cạnh tranh bằng cách cung cấp dịch vụ của mình thật tốt, càng toàn diện càng tốt. Ví dụ: nó muốn giúp các công ty khởi nghiệp xử lý tất cả các khía cạnh của lương thưởng trong tổ chức của họ – ngoài tiền lương còn tư vấn về đánh giá lương thưởng, giao tiếp với nhân viên và phân tích lương.

Lee cho biết: 

“Chế độ lương thưởng cho nhân viên hiện nay phức tạp hơn bao giờ hết, do xu hướng làm việc từ xa và lạm phát gần đây, cũng như sự chú trọng vào văn hoá DE&I (đa dạng và hoà nhập)”.

Ông lập luận rằng vấn đề vượt ra khỏi nguồn nhân lực với nhiều đội ngũ tham gia vào quy trình và dữ liệu nằm rải rác trên nhiều hệ thống. Lee hy vọng với Comprehensive, các công ty sẽ “có khả năng thấy được các thông tin liên quan đến lương thưởng ở một nơi duy nhất.”

Lee nói thêm:

“Khi dữ liệu tổng hợp tồn tại trong các hệ thống phân tầng, một công ty không thể thực sự đưa ra quyết định sáng suốt về lương thưởng. Chúng tôi đang cố thống nhất mọi dữ liệu.”

Giao diện của Comprehensive
Giao diện của Comprehensive

Ông nhấn mạnh, Comprehensive không chỉ là việc tuyển dụng nhân viên mà còn là vấn đề giữ chân nhân viên. Lee ước tính rằng lương thưởng cho nhân viên thường chiếm 70-80% tổng chi phí của các công ty khởi nghiệp – đại diện cho khoản chi phí lớn nhất “cho đến nay”.

Lee nói:

“Hơn bao giờ hết, các công ty khởi nghiệp muốn biết rằng số tiền mà họ chi tiêu đang được sử dụng để thưởng và giữ chân những người đạt thành tích cao và không bị lãng phí”.

Comprehensive vận hành mô hình SaaS trong đó công ty tính phí dựa trên quy mô. Công ty có kế hoạch sử dụng vốn của mình để tăng trưởng và tiếp tục tuyển dụng.

Alexa von Tobel, người sáng lập và đối tác quản lý của Inspired Capital, tin rằng khi hệ thống công nghệ nhân sự “tiếp tục dịch chuyển sang đám mây, thì lương thưởng là một thách thức công nghệ khó khăn và phức tạp đã đến lúc cần đổi mới.”

“Về cơ bản, lương thưởng đã thay đổi trong năm qua và Comprehensive được sinh ra để đáp ứng thời điểm cụ thể này: ngày càng nhiều công ty làm việc từ xa với kỳ vọng lương thưởng chênh lệch, lạm phát tiền lương, nhu cầu công khai lương thưởng tăng lên và đánh giá chênh lệch lương, v.v.”.

Tham khảo: TechCrunch

Categories
All about Japan

Đến chịu với quả bàn phím khó đỡ đến từ Google Nhật Bản

Nhắc đến bàn phím, hẳn chúng ta dễ dàng hình dùng hình thù, kích thước cũng như bố cục rồi đúng không? Nhưng mới đây, các chuyên gia Google Nhật Bản lại làm chúng ta té ngửa bởi một thiết kế bàn phím mới với hàng tá công dụng vi diệu mà nó mang lại.

Dưới đây là các hình ảnh của chiếc bàn phím khiến bạn chỉ muốn thốt lên “hỡi ôi mấy ông này sao lại có thể nghĩ được như thế?”

Bàn phím gì giống bộ mạt chược thế này
Nhưng đây mới là hình thù thiệt sự nè
Xem nó này!
Dài thế này thì gõ phím làm sao?
Thiết kế nhìn như phương tiện công cộng phổ biến ở Nhật
Bàn phím gì mà dài tận 1m65
Đây là nó khi đặt bàn
Bàn phím này… xinh đấy!
Xem tôi nâng niu nó chưa
Dock sạc pin hay cây đèn bàn vậy?
Thế này thì chỗ ngồi rộng rãi ghê
Nào, chị em ta cùng tấu khúc “Tiếu ngạo giang hồ”
Và cả rổ những công dụng khác nữa…
Hỗ trợ đi thăng bằng trên dây rất tốt nha
Bật công tắc đèn và mò vật thể lạ
Không biết gác đũa ở đây bây giờ?
Nhóc con ra đây mẹ đo chiều cao nào!
Gắn vợt thế này để làm gì đây? Bắt cá?
À, ra là để bắt ve
Gậy trekking cho những cung đường mệt mỏi
Đây chắc là gậy đánh golf

Xem video dưới đây để cảm nhận rõ hơn bạn nhé:

Nguồn: Google Japan

Categories
Gambaru News

UAE dự định xây dựng văn phòng Bộ Kinh tế trong metaverse

Những năm qua, các Tiểu vương quốc Ả Rập thống nhất (UAE) đã thực hiện nhiều dự án táo bạo, chẳng hạn như xây dựng những công trình chọc trời cao nhất thế giới hay thực hiện một sứ mệnh trên sao Hoả.

UAE dự định làm metaverse
UAE dự định làm metaverse

Giờ đây, UAE đặt mục tiêu xa hơn, đó là trở thành nhà tiên phong trong thế giới ảo, bằng cách thiết lập văn phòng của Bộ Kinh tế trong metaverse.

Bộ trưởng Kinh tế – Abdulla bin Touq Al Marri cho biết, để khám phá cơ sở đó, những người có nhu cầu sẽ phải đeo kính thực tế ảo hoặc sử dụng các công cụ khác.

Họ sẽ thấy văn phòng kinh doanh với các công ty, thậm chí là sẵn sàng ký kết các thoả thuận song phương với chính phủ nước ngoài.

Những người đề xuất sáng kiến Metaverse khẳng định vũ trụ ảo là một thế giới trực tuyến. Nơi mà người dùng có thể chơi game, làm việc hay học tập như ở môi trường thực tế.

Phát biểu khai mạc trong Hội nghị Dubai Metaverse được tổ chức tại Bảo tàng Tương Lai, Bộ trưởng Kinh tế cho biết dự án đang trong giai đoạn thử nghiệm.

Sự kiện thu hút sự góp mặt của nhiều đại điện đến từ các công ty công nghệ lớn, các doanh nhân và những nhà phát triển quan tâm đến tiềm năng của vũ trụ ảo – một mạng lưới không gian kỹ thuật số nhằm mục đích mở rộng thế giới vật chất.

“Trong vài năm qua, chúng tôi đã chứng kiến các khoản đầu tư, chúng tôi thấy các công ty chuyển đến và những thay đổi về chính sách như vấn đề về thị thực chẳng hạn,… chúng tôi nhận thấy được nhiều tài năng đã đến với đất nước, và chúng tôi đã đào tạo các nhân viên của mình để họ có thể hoà mình vào metaverse, sử dụng metaverse và tương tác với thế hệ Z sẽ tham gia vào thế giới này. Đây là nhóm đối tượng sẽ cần rất nhiều dịch vụ trong tương lai”.

Ông Abdulla bin Touq Al Marri cho rằng chính đại dịch COVID-19 đã khiến nhân loại gắn bó với thế giới trực tuyến nhiều hơn và góp phần đẩy nhanh xu hướng vũ trụ ảo.

Qua sáng kiến mới lần này, UAE hy vọng metaverse sẽ giúp họ tăng thêm 4 tỷ USD GDP hàng năm và tạo thêm 40.000 việc làm cho công dân vào năm 2030.

Trong nỗ lực trở thành 1 trong 10 nền kinh tế lớn của thế giới, Dubai muốn thu hút thêm 1000 công ty chuyên về blockchain và các công nghệ liên quan khác.

Nguồn: Tinhte.

Categories
Dev's Corner

Clean Code là gì? Tại sao developer nên quan tâm đến Clean code?

Những năm qua, tôi ngày càng quan tâm đến khái niệm Clean CodeSoftware Craftsmanship. Tuy nhiên, những khái niệm này thực sự có nghĩa là gì và tại sao các nhà phát triển phần mềm nên quan tâm đến chúng, hay thực sự có nên quan tâm đến chúng?

Trong bài này, tôi sẽ thảo luận về các vấn đề khác nhau liên quan đến khái niệm Clean Code và ý nghĩa thực sự của nó, hy vọng cung cấp một số hiểu biết hữu ích dựa trên kinh nghiệm của mình trong quá trình phát triển phần mềm doanh nghiệp.

Clean Code là gì? Ảnh: cleancoders.com
Clean Code là gì? Ảnh: cleancoders.com

Hầu hết mọi thứ trong cuộc sống đều mang tính chủ quan.

Cho 3 người bất kỳ vào một phòng và hầu như bạn luôn có những ý kiến ​​khác nhau về bất kỳ chủ đề nhất định nào.

Nếu có bất cứ điều gì mà con người chúng ta làm tốt, thì đó là khả năng bất đồng của chúng ta. Dù cuối cùng chúng ta có thể đạt được một số đồng thuận, nhưng nếu hỏi bất kỳ ai sau đó và bạn sẽ nhận ra rằng sự đồng thuận không gì khác hơn là một thỏa thuận cho sự bất đồng.

Trong phần lớn sự nghiệp làm phần mềm của mình, tôi tin rằng có một số luật bất thành văn, nếu bạn hỏi bất kỳ nhà phát triển nào về chất lượng code của một nhà phát triển khác, và bất kể họ đã xem hay chưa, họ gần như sẽ nói code dở tệ!

Các nhà phát triển phần mềm (software developer) thậm chí không thể đi đến đồng thuận về ngôn ngữ lập trình nào là tốt nhất.

Tôi đã từng là nhân chứng cho một trong những tranh luận lớn này, tại một thời điểm điên rồ của ban quản lý, ai đó đã quyết định đưa một loạt các Lập trình viên C++, C# và Java vào làm việc tất cả trong một phòng trong nhiều tháng. Tôi có thể nói với bạn rằng, cuộc tranh đấu đã diễn ra trong nhiều tháng, và tôi không nghĩ rằng họ đã đạt được sự đồng thuận!

Những người trong phòng nói trên, thậm chí không thể đi đến thống nhất về cách tốt nhất để pha cà phê hoặc cách phát âm. Tôi có thể nói, Java chắc chắn không được xếp hạng là loại cà phê ưa thích!

Theo như tôi biết, các lập trình viên Java vẫn lập trình bằng trong Java, C# thì vẫn bằng C# và C++ thì vẫn đang cố gắng tìm vị trí các con trỏ và tại sao bộ đệm lại bị tràn!

Clean Code là gì?

Điểm chung giữa 3 nhóm này là họ đều tin rằng chọn lựa và ngôn ngữ lập trình ưa thích của mình đã giúp họ viết được Clean Code!

Điều này chỉ khiến ai đó giả định rằng Clean Code, chỉ là một vấn đề mang tính chủ quan cao. Nó cũng có nghĩa là một cái gì đó hoàn toàn khác, tùy thuộc vào vị trí trong chuỗi Phát triển Phần mềm mà bạn ngồi.

Qua nhiều năm, tôi đã đi tới kết luận rằng có rất nhiều định nghĩa về clean code mà các developer dường như đồng ý với nhau.

Clean code là code dễ hiểu và dễ thay đổi.

Định nghĩa phổ biến nhất của clean code là code dễ hiểu và dễ thay đổi. Nhìn bề ngoài, điều này có thể khiến người ta phải gật đầu và vuốt cằm tán dương, nhưng cuối cùng thì đó là một trong những định nghĩa nói lên điều gì đó mà không thực sự nêu rõ bất cứ điều gì.

Theo định nghĩa đó, hoàn toàn bất kỳ code nào, đều có thể được phân loại là clean code. Ngay cả những code dưới đây có thể được coi là clean code. Nó dễ hiểu và tôi chắc chắn có thể thay đổi nó một cách dễ dàng.

void FixTheCondition(object aCondition, object someCriteria)
{
     if(aCondition != someCriteria)
     {
        doSomethingToFix(aCondition)
     }
}

Tôi chắc chắn rằng code này tuân thủ một số tiêu chí khiến nó dễ hiểu

  • dễ hiểu luồng thực thi của toàn bộ ứng dụng
  • dễ hiểu cách các đối tượng khác nhau cộng tác với nhau
  • dễ hiểu vai trò và trách nhiệm của từng lớp
  • dễ hiểu những gì mỗi phương pháp làm
  • dễ hiểu mục đích của từng biểu thức và biến là gì

Code này cũng dễ dàng mở rộng và refactor cũng như dễ dàng sửa các lỗi trong cơ sở mã. Điều này có thể đạt được nếu người thực hiện thay đổi hiểu được code và cũng cảm thấy tin tưởng rằng những thay đổi được giới thiệu trong code không phá vỡ bất kỳ chức năng hiện có nào.

Ai đó có thể lập luận rằng để code dễ thay đổi:

  • Các lớp và phương thức nhỏ và chỉ có trách nhiệm duy nhất
  • Các lớp có API công khai rõ ràng và ngắn gọn
  • Các lớp và phương thức có thể dự đoán được và hoạt động như mong đợi
  • Có dễ dàng kiểm tra và có các bài kiểm thử đơn vị (hoặc dễ dàng viết các bài kiểm thử)
  • Các bài kiểm thử dễ hiểu và dễ thay đổi

Đoạn code trên, phù hợp với tất cả các tiêu chí. Chúng ta có thể coi đây là Clean code, nhưng nó có thực sự như vậy không?

Trong cả sự nghiệp của mình, tôi đã thấy nhiều cách diễn giải về cùng một đoạn code, trong hàng trăm ứng dụng. Ngay cả trong những thứ mà một số người sẽ cân nhắc và thậm chí được bán như một phần mềm doanh nghiệp có quy mô lớn. Trên thực tế, nếu bạn mở hầu hết bất kỳ ứng dụng phần mềm nào, bạn có thể sẽ tìm thấy các ví dụ tương tự.

Điều này có nghĩa là code thực sự clean code?

Ai quan tâm đến Clean code?

Một trong những vấn đề lớn nhất trong ngành phát triển phần mềm là không có nhiều người thực sự quan tâm đến clean code.

Đúng là có thể một tỷ lệ nhất định các nhà phát triển quan tâm đến clean code, nhưng theo kinh nghiệm, không phải tất cả họ đều làm trong cùng một nhóm và hầu hết có thể không ở nhóm của bạn.

Sự thật là, clean code cần thời gian, công sức, chú ý và chăm sóc, cả bốn giá trị mà phía kinh doanh không thực sự quan tâm. Lý do là Clean Code nằm trong tiêu chí Chất lượng của Tam giác chất lượng, một biến thể Tam giác quản lý dự án.

Tam giác chất lượng (Quality triangle)
Tam giác chất lượng (Quality triangle)

Tam giác dự án thể hiện các ràng buộc về thời gian, chi phí và chất lượng hoặc phạm vi phải được quản lý trong quá trình thực hiện dự án. Mỗi ràng buộc được kết nối và việc di chuyển một điểm của tam giác sẽ tác động đến hai điểm còn lại.

Vì vậy, bạn có thể cung cấp code và triển khai ứng dụng nhanh chóng để đáp ứng các mục tiêu kinh doanh hoặc bạn có thể mất nhiều thời gian hơn để đảm bảo chất lượng của code được phát hành. Vấn đề là bạn không bao giờ có thể có cả hai, một thời điểm nào đó, cái gì đó phải bị gạt bỏ. Trong phần mềm, thường xuyên nhất chính là chất lượng.

Lý do chính tại sao, code thường là khía cạnh ít được nhìn thấy nhất của phát triển phần mềm.

Chắc chắn các nhà phát triển quan tâm đến nó, bạn sẽ thường nghe các nhà phát triển nói về “code đẹp” hoặc thậm chí là “code thanh lịch”, nhưng rất hiếm khi và tôi sẽ là người đầu tiên thừa nhận rằng tôi chưa bao giờ nghe nhận xét của người dùng cuối về tính thẩm mỹ của code. Sự thật là họ không quá quan tâm.

Điều duy nhất mà người dùng thường quan tâm với các ứng dụng phần mềm là nó giải quyết được vấn đề mà họ gặp phải. Bạn không cần code sạch, đẹp hoặc thậm chí thanh lịch để giải quyết vấn đề, điều này có thể được thực hiện chỉ với code.

Viết phần mềm Máy tính là một trong những hoạt động sáng tạo thuần túy nhất trong lịch sử loài người. Các lập trình viên không bị ràng buộc bởi các giới hạn thực tế như các định luật vật lý; chúng ta có thể tạo ra những thế giới ảo thú vị với những hành vi không bao giờ có thể tồn tại trong thế giới thực. Lập trình không yêu cầu kỹ năng thể chất hoặc sự phối hợp tuyệt vời như múa Ba lê hay Bóng đá. Tất cả những gì lập trình yêu cầu là đầu óc sáng tạo và khả năng sắp xếp suy nghĩ của bạn. Nếu bạn có thể hình dung một hệ thống, bạn có thể triển khai nó trong một chương trình máy tính.

Triết lý thiết kế phần mềm – John Ousterhout

Quản lý độ phức tạp

Nhiều người nghĩ rằng nhiệm vụ chính của một nhà phát triển phần mềm là viết code nhằm tạo ra các ứng dụng, điều này không hoàn toàn chính xác, bởi vì nhiệm vụ chính của một nhà phát triển phần mềm là quản lý sự phức tạp (Complexity).

Các nhà phát triển phần mềm nên sử dụng code để giấu hoặc loại bỏ sự phức tạp khi phát triển ứng dụng.

Sự phức tạp là kẻ thù của các ứng dụng phần mềm có quy mô lớn, mạnh và đáng tin cậy và các nhà phát triển cần đảm bảo họ không viết mã phức tạp.

Sự phức tạp là bất cứ thứ gì liên quan đến cấu trúc của một hệ thống phần mềm khiến nó khó hiểu và khó sửa đổi hệ thống.

Chìa khóa để viết clean code tốt là hiểu các triệu chứng của sự phức tạp và cách tránh nó.

1. Khuếch đại thay đổi (change amplification)

Một thay đổi có vẻ đơn giản đòi hỏi phải sửa đổi code ở nhiều nơi khác nhau. Mục tiêu ở đây là giảm số lượng code bị ảnh hưởng bởi mỗi quyết định thiết kế, giảm tác động của những thay đổi trong quyết định thiết kế đòi hỏi nhiều sửa đổi code.

2. Tải nhận thức (cognitive load)

Đây là mức thông tin hoặc kiến ​​thức hệ thống bắt buộc mà nhà phát triển cần biết để hoàn thành một nhiệm vụ. Yêu cầu tải nhận thức càng cao, càng làm tăng khả năng phát sinh lỗi và nhà phát triển sẽ cần thời gian để hoàn thành nhiệm vụ.

3. Quản lý các ẩn số không xác định (unknown unknowns)

Triệu chứng thứ ba của sự phức tạp là không rõ ràng những đoạn code nào phải được sửa đổi để hoàn thành một nhiệm vụ, hoặc thông tin nào mà nhà phát triển phải có để thực hiện nhiệm vụ thành công.

Trong ba biểu hiện của sự phức tạp, những ẩn số không xác định cho đến nay là tệ nhất. Điều này là do một ẩn số không xác định thường có nghĩa là có điều gì đó mà nhà phát triển cần biết, nhưng không có cách nào để họ tìm ra hoặc thậm chí liệu có vấn đề hay không.

Trong tất cả các khả năng, họ sẽ không phát hiện ra điều đó cho đến khi lỗi xuất hiện sau khi họ thực hiện thay đổi.

Khuếch đại thay đổi và tải nhận thức gây khó chịu và chắc chắn sẽ dẫn đến tăng chi phí thay đổi và bảo trì, nhưng chúng vẫn có thể quản lý được.

Tuy nhiên, với những ẩn số không xác định, một tổ chức thực sự không biết họ nên làm gì, hoặc tác động có thể xảy ra mà một thay đổi sẽ có hoặc liệu giải pháp được đề xuất có hiệu quả hay không.

Nguyên nhân của sự phức tạp

Nguyên nhân của sự phức tạp không phải lúc nào cũng trực tiếp do code xấu, cũng giống như việc code xấu không phải lúc nào cũng là kết quả trực tiếp của các nhà phát triển kém hoặc thậm chí có kỹ năng kém.

Tôi đã chứng kiến ​​nhiều nhà phát triển có tay nghề cao tạo ra code xấu và điều này không phải lúc nào cũng xảy ra.

Nhiều người tin rằng sự phức tạp được gây ra bởi hai điều: Sự phụ thuộc và Sự mơ hồ. 

Trên thực tế, nếu bạn nói chuyện với nhiều nhà phát triển về nguyên nhân của sự phức tạp, họ có thể sẽ làm nổi bật cả hai điểm này.

Sự thật là, mặc dù chúng đều làm tăng thêm độ phức tạp ở cấp độ code, nhưng chúng thường không phải là nguyên nhân trực tiếp giải thích tại sao độ phức tạp được nhắc đến ngay từ đầu.

Hai nguyên nhân này gây ra sự phức tạp trong các cơ sở mã, không phải lúc nào cũng do các lựa chọn hoặc hành động của nhà phát triển, mà thường là kết quả của các lực lượng bên ngoài tác động và buộc các nhà phát triển phải đưa ra các quyết định tồi.

Để hiểu và xác định những lực lượng này, trước tiên chúng ta nên hiểu các nguyên tắc đằng sau Sự phụ thuộc (Dependency) và Sự mơ hồ (Obscurity).

Ở mức độ cao, sự phụ thuộc tồn tại khi một đoạn code nhất định không thể được hiểu và sửa đổi một cách riêng biệt: code liên quan theo một cách nào đó với code khác và code khác phải được xem xét và / hoặc sửa đổi nếu code đã cho bị thay đổi.

Sự phụ thuộc là một phần cơ bản của phần mềm và không bao giờ có thể được loại bỏ hoàn toàn.

Chúng tôi thường giới thiệu các phụ thuộc như một phần của quá trình thiết kế phần mềm. Mỗi khi một lớp hoặc hàm mới được tạo, nó sẽ tạo ra các phụ thuộc xung quanh API cho lớp đó.

Tuy nhiên, một trong những mục tiêu của thiết kế phần mềm là giảm số lượng phụ thuộc và làm cho các phụ thuộc trở nên đơn giản và rõ ràng nhất có thể.

Sự mơ hồ xảy ra khi thông tin quan trọng không rõ ràng, thường gắn liền với các phụ thuộc, nơi không phải lúc nào cũng rõ ràng rằng có một phụ thuộc tồn tại. Nguyên nhân hàng đầu dẫn đến sự mơ hồ là sự không nhất quán, cũng thường là kết quả của việc tài liệu không hoàn chỉnh hoặc không đầy đủ. Sự mơ hồ cũng thường là một vấn đề thiết kế.

Nhiều tổ chức và nhà phát triển lập luận rằng nếu một hệ thống có thiết kế clean và rõ ràng, thì nó sẽ không cần nhiều tài liệu. Thường người ta lầm tưởng rằng nếu cần có tài liệu mở rộng, thì đây là một cảnh báo cho thấy thiết kế không hoàn toàn đúng.

Nhiều tổ chức chống lại điều này bằng cách triển khai các phương pháp luận Agile mà công bố một cach nhầm lẫn, rằng không cần tài liệu vì giá trị 2 trong 4 giá trị của Tuyên ngôn Agile nói rằng:

Phần mềm chạy được ưu tiên hơn Tài liệu toàn diện

Điều thường được đặt trước bằng cách nêu nguyên tắc 1 cũng nói:

Cá nhân và Tương tác ưu tiên hơn Quy trình và Công cụ

Đây thường là điểm khi các yếu tố phụ thuộc và mơ hồ len lỏi vào các cơ sở mã, bởi những gì hầu như luôn bị bỏ qua trong code và không phải lúc nào cũng dễ dàng giải mã khi đọc code, đó là Ý định, Lập luậnMục tiêu.

Sự phụ thuộc và Sự mơ hồ là nguyên nhân cho ba biểu hiện của sự phức tạp. Sự phụ thuộc đưa đến sự khuếch đại thay đổi và tải trọng nhận thức cao. Sự mơ hồ tạo ra những ẩn số chưa biết, góp phần vào tải trọng nhận thức. Nếu chúng ta có thể tìm thấy các kỹ thuật thiết kế để giảm thiểu sự phụ thuộc và mơ hồ, chúng ta có thể giảm độ phức tạp của phần mềm.

Độ phức tạp gia tăng lặp đi lặp lại

Sự phức tạp không chỉ xảy ra thôi đâu, mà nó tích lũy dần dần. Bản thân một sự phụ thuộc đơn lẻ hoặc một chút mơ hồ không có ảnh hưởng đáng kể đến khả năng bảo trì của một hệ thống phần mềm.

Sự phức tạp xuất hiện do hàng trăm hoặc hàng nghìn phụ thuộc nhỏ và những mơ hồ tích tụ theo thời gian. Cuối cùng, có rất nhiều thay đổi có thể xảy ra đối với một hệ thống đều bị ảnh hưởng bởi một số thay đổi trong số đó.

Đó là bản chất phức tạp ngày càng tăng khiến việc kiểm soát khó khăn và thường rất phức tạp để xác định.

Các nhóm phát triển phần mềm dễ dàng đánh lừa bản thân rằng một chút phức tạp được tạo ra bởi một thay đổi hiện tại không phải là vấn đề lớn. Mặt hạn chế, là điều này trở nên dễ dàng cho phép về mặt văn hóa và sau đó nó tích lũy nhanh chóng!

Một khi sự phức tạp đã tích tụ, thật khó để loại bỏ vì việc sửa chữa một sự phụ thuộc hoặc sự mơ hồ duy nhất sẽ không tạo ra sự khác biệt.

Cuối cùng cả team xôn xao. Họ báo cho ban quản lý rằng họ không thể tiếp tục phát triển trong cơ sở mã đáng sợ này. Họ yêu cầu thiết kế lại.

Robert C Martin – Clean Code

Kết luận

Sự phức tạp đến từ sự tích tụ của các phụ thuộc và sự mơ hồ, dẫn đến sự khuếch trương thay đổi, tải nhận thức cao và những ẩn số không xác định! Điều này thường dẫn đến nhiều sửa đổi hơn để triển khai từng tính năng mới và để khắc phục các sự cố được tạo ra bằng cách triển khai các tính năng trước đó.

Các nhà phát triển được yêu cầu dành nhiều thời gian hơn để thu thập đủ thông tin để thực hiện các thay đổi một cách an toàn, thường gặp khó khăn vì họ không bao giờ có thể tìm thấy tất cả thông tin họ cần vì phần lớn thông tin đó không tồn tại!

Về cốt lõi, clena code và các phương pháp thực hành là nhằm loại bỏ hoặc ít nhất là cố gắng giảm bớt sự phức tạp. Mặc dù các giải pháp clean code có vẻ thanh lịch và hiệu quả, nhưng chúng không phải lúc nào cũng dễ dàng và thường là kết quả trực tiếp của việc chống lại sự phức tạp!

Xem video Clean Code in Practices từ anh Tú Phạm (Head of Engineering) tại buổi Technical Event #12 do Gamba tổ chức.

Tham khảo: Garywoodfine