Thứ Bảy, 27 tháng 9, 2014

10 tính năng kì quái trong ngôn ngữ lập trình

10 tính năng kì quái trong ngôn ngữ lập trình

Mỗi ngôn ngữ lập trình đều có những thứ kì quặc, như cú pháp lạ lùng, chức năng hiếm thấy hoặc các thiết lập không theo quy chuẩn nào. Những thứ này có thể khiến nhà lập trình cảm thấy lạ lẫm với ngôn ngữ ấy, thậm chí những tay lập trình viên lâu năm phải… gãi đầu. Thỉnh thoảng, những yếu tố ấy khiến nhà lập trình cảm thấy bế tắc, nhưng đôi khi, chúng lại dễ hiểu, độc đáo và tạo nên nét riêng cho một ngôn ngữ nào đó.


Trong khi có vô vàn đặc tính riêng về ngôn ngữ lập trình nhưng có vài đặc tính trong số ấy rất đáng chú ý khi giới lập trình thảo luận về chủ đề này. Dưới đây là 10 tính năng ngôn ngữ lập trình trong số ấy:


+ là toán tử nối trong JavaScript


Vấn đề: Toán tử + có đầy trong JavaScript, trở thành một toán tử bổ sung cho số và toán tử nối cho chuỗi. Nếu một toán hạng là một chuỗi thì JavaScript chuyển đổi biến số khác thành một chuỗi và quá trình nối chuỗi diễn ra, nên ‘1’ + 1 sẽ thành 11.


Lí do: Điều này hoàn toàn do cách quy định loại dữ liệu quá lỏng lẻo của JavaScript. Ví dụ Python cũng sử dụng + cho nối chuỗi nhưng nó là ngôn ngữ quy định loại dữ liệu rất chặt chẽ, nên nó sẽ báo lỗi nếu bạn cố thêm một chuỗi vào một số nguyên.


Module Perl phải trở về giá trị TRUE


Vấn đề: module Perl luôn luốn kết thúc với khai báo 1; còn nếu không thì khai báo cuối cùng không thể trả về giá trị TRUE, và sẽ gây lỗi.


Lí do: các module Perl có thể chứa mã khai báo cũng như thủ tục con. Sau khi tải file, Perl kiểm tra bất kĩ mã thực thi thành công nào bằng cách tìm một giá trị trả về là TRUE. Thậm chí nếu không có mã khai báo thì Perl vẫn sẽ tìm kiếm một khai báo cuối cùng trả về giá trị TRUE, còn không thì nó báo lỗi.


Nhóm ba kí tự trong C và C++


Vấn đề: C (và C++) hỗ trợ một tập 9 bộ ba kí tự, và sẽ tự động chuyển đổi thành các kí tự đơn trước khi xử lí tiếp theo, ví dụ ??! sẽ được đổi thành |. Do vậy chúng có thể tạo ra những điều không ngờ tới được và khiến mã nguồn khó kiểm soát hơn.


Lí do: nhóm ba kí tự cho phép các nhà lập trình C thời gian đầu có thể tạo ra những kí tự nào đó mà bàn phím chưa hỗ trợ, như là dấu ngoặc móc.


Trường hợp chữ hoa/chữ thường của PHP


Vấn đề: Trong khi các bộ nhận diện trong các ngôn ngữ khác thường phân biệt chữ hoa, chữ thường thì các hàm chức năng trong PHP (cũng như tên của class và method) thì không phân biệt hoa hay thường gì cả. Càng khiến cho các nhà phát triển rối hơn là các tên biến, hằng số và thuộc tính class trong PHP lại phân biệt chữ hoa, chữ thường.


Lí do: Hầu hết những gì mà PHP thừa hưởng là từ một tập mã của CGI để biến nó trở thành một ngôn ngữ lập trình chính thức.


Trong Ruby, 0 là có giá trị


Vấn đề: Trong Ruby, giá trị 0 tương đương với TRUE. Điều này trái ngược với rất nhiều ngôn ngữ khác, như C và Python, 0 tương đương với FALSE, nên khiến nhiều nhà phát triển Ruby mới làm quen thấy rất ngạc nhiên.


Lí do: Trong Ruby, chỉ có giá trị Boolean FALSE và nil là tương đương với FALSE; mọi thứ còn lại đều có giá trị TRUE. 0 được tính cũng như mọi con số khác.


Khoảng trắng thụt đầu dòng dùng để mô tả khối trong Python


Vấn đề: không dùng dấu câu hoặc từ khoá, Python sử dụng khoảng trắng để mô tả một khối mà một hàng mã thuộc khối ấy. Nếu số lượng khoảng trắng không đúng (hoặc lẫn lộn giữa nút tab và spacebar) đều có thể sinh lỗi.


Lí do: Giúp cho mã nguồn dễ đọc hơn và giảm số lượng cần gõ vì nhiều công cụ viết mã tự động thụt vào đầu dòng.


Chỉ mục mảng trong C giống như bộ chỉ số học


Vấn đề: Trong C, mảng hành động như bộ trỏ đến các khối bộ nhớ, nên a[i] = *(a + i) = *(i + a) = i[a].


Tham số định nghĩa sẵn của Perl


Vấn đề: Perl có một danh sách dài tham số với các tên gọi rất khó hiểu (mặc dù chúng cũng có những từ tiếng Anh tương đương). Đối với người lập trình không quen với Perl thì họ có thể phải tra tài liệu Perl thường xuyên và khiến quá trình viết mã rất khó đọc.


Lí do: Những tham số này thường cung cấp thông tin và truy cập đến nhiều loại khía cạnh thực thi chương trình, như tiến trình ID ($$), thông điệp báo lỗi ($@) và hợp regex ($^R).


JavaScript tự động chèn dấu chấm phẩy


Vấn đề: JavaScript sử dụng dấu chấm phẩy (;) vào cuối khai báo nào đó bằng cách tự động chèn ở nơi nào mà nó cho rằng cần phải có, như là xuống dòng. Do vậy điều này dễ dẫn đến lỗi.


Lí do: việc chèn thêm dấu chấm phẩy có ý muốn mang lại thuận tiện cho nhà lập trình, giúp JavaScript có cú pháp giống như C để các nhà lập trình mới dễ học hơn.


Tính năng autoboxing của Java với đệm Integer


Vấn đề: Java sẽ tự động chuyển các loại dữ liệu nguyên hàm thành đối tượng (object), gọi là autoboxing, như int thành một đối tượng Integer. Mặc định thì nó cũng sẽ đệm các đối tượng Integer cho các giá trị từ -128 đến 127. Do vậy điều này dẫn đến những lỗi bất ngờ khi ta sử dụng == để so sánh các Integer được autoboxing với cùng giá trị (TRUE từ -128 đến 127; còn lại thì FALSE).


Lí do: Autoboxing giảm số lượng mã nguồn mà nhà phát triển cần viết trong khi đệm Integer sẽ cải thiện tốc độ chương trình.


Theo PC World VN.



Không có nhận xét nào:

Đăng nhận xét

QUẢN LÝ KHÁCH SẠN NHÀ HÀNG

QUẢN TRỊ NHÀ HÀNG KHÁCH SẠN

QUẢN TRỊ NHÀ HÀNG KHÁCH SẠN Nỗ lực tìm một CEO (tổng giám đốc) chuyên nghiệp với kỳ vọng người này sẽ đồng hành, gắn bó lâu dài là tâm lý chung của đa số doanh nghiệp Việt Nam. Tuy nhiên, trên thực tế, những cuộc “hôn nhân” đó đều chấm dứt chỉ sau một thời gian ngắn. Khi có sự thay đổi lớn về chiến lược, chẳng hạn như tái cấu trúc, chuẩn bị mua bán – sáp nhập, mở rộng vốn đầu tư và thị trường, các chủ doanh nghiệp thường có nhu cầu tìm kiếm một tướng giỏi để giúp họ lèo lái công việc. Song, khi đã thành công hoặc tạm thành công với chiến lược mới, dấu hiệu rạn nứt giữa đôi bên bắt đầu xảy ra và CEO phải ra đi. Ông Robert Trần, CEO Công ty Robenny khu vực châu Á – Thái Bình Dương, chuyên tư vấn và cho thuê CEO, khuyên, các ông chủ doanh nghiệp đừng quá kỳ vọng vào một cuộc hôn nhân bền vững, lâu dài. “Doanh nghiệp Việt nên thay đổi quan niệm, chọn đúng CEO vào đúng từng giai đoạn phát triển của công ty”, ông nói. Đây cũng là cách thức mà các nước phát triển đã áp dụng thành công.

Khi nào tôi cần thuê CEO?
Nam Long là một tập đoàn chuyên đầu tư và kinh doanh bất động sản đã trải qua 18 năm tồn tại, có 8 công ty con và đang hoạt động mạnh trong 3 lĩnh vực: phát triển quỹ đất, nhà ở và các dự án văn phòng, trung tâm thương mại. Với quy mô ngày càng lớn, ông Nguyễn Xuân Quang, Chủ tịch Hội đồng Quản trị kiêm Tổng Giám đốc Công ty Cổ phần Đầu tư Nam Long, cho biết ông muốn tìm một CEO chuyên nghiệp nhưng 5 năm rồi vẫn chưa tìm được.
Không giống như Nam Long, các công ty như Đồng Tâm, Giấy Sài Gòn đều đã thuê CEO, nhưng rồi họ cũng ra đi. Sau các cuộc chia tay đó, ông Võ Quốc Thắng, Chủ tịch Hội đồng Quản trị Đồng Tâm và ông Cao Tiến Vị, Chủ tịch Hội đồng Quản trị Giấy Sài Gòn, đã có những trải nghiệm quý giá chia sẻ với gần 200 doanh nhân tại buổi Tọa đàm “Finding CEO – Gian nan đường tìm tướng giỏi” do Nhịp Cầu Đầu Tư tổ chức vào cuối tháng 10 vừa qua.
Theo ông Robert Trần, mỗi doanh nghiệp đều trải qua 3 giai đoạn phát triển: bắt đầu phát triển, phát triển và phát triển bền vững. Ở mỗi giai đoạn doanh nghiệp sẽ có mục tiêu khác nhau nên nhu cầu thuê CEO cũng khác nhau. Theo ông, đa số doanh nghiệp lớn tại Việt Nam hiện nay ở giai đoạn đang phát triển, nhưng chính xác là vào đầu, giữa hay cuối giai đoạn thì chủ doanh nghiệp cần phải xác định rõ.
Năm 2007, Đồng Tâm là 1 trong 2 doanh nghiệp lớn của Việt Nam được Bộ Khoa học Công nghệ chọn triển khai thí điểm dự án “Vươn tới đỉnh cao” (BiC – Best in Class), xây dựng những thương hiệu lớn của Việt Nam vươn lên tầm khu vực. Để làm được điều đó, doanh nghiệp phải tái cấu trúc dây chuyền sản xuất, nhân sự… Chủ tịch Võ Quốc Thắng đã mời ông Etienne Lucien Laude (quốc tịch Pháp), từng là CEO Công ty Thiết bị Điện Schneider Vietnam, về giữ chức CEO của Đồng Tâm.
Về Đồng Tâm tháng 8.2008, ông Laude đã bắt tay triển khai module đầu tiên về quản lý sản xuất theo BiC, giúp tiết kiệm tối đa chi phí quản lý, hạn chế tồn kho… Tuy nhiên, cuối tháng 9 vừa qua, Tập đoàn Đồng Tâm đã kết thúc hợp đồng 2 năm với CEO người Pháp này, dù những module quan trọng của quá trình tái cấu trúc vẫn chưa kết thúc.
Giống như Đồng Tâm, đầu năm 2003, Giấy Sài Gòn tiến hành cổ phần hóa, ông Vị đã bắt đầu nghĩ đến việc thay đổi mô hình quản trị từ gia đình sang kiểu quản lý chuyên nghiệp thường thấy ở nhiều tập đoàn đa quốc gia, thuê CEO điều hành Công ty, còn ông lui về làm chiến lược. Đến năm 2008, Giấy Sài Gòn quyết định tăng vốn, mở rộng đầu tư và đã mời ông Trần Xuân Nam về làm CEO. Ông Nam từng là giám đốc tài chính của nhiều công ty lớn như Đồ gỗ Scancom Việt Nam (Đan Mạch), Coca-Cola Việt Nam, Tập đoàn Kinh Đô và là Phó Giám đốc Công ty Gỗ Trường Thành. Với kinh nghiệm và chuyên môn về tài chính, ông Nam đã rất thành công trong việc huy động vốn cho Công ty. Tuy nhiên, khi Giấy Sài Gòn đặt ra chỉ tiêu duy trì và tăng trưởng doanh thu trong thời kỳ khủng hoảng tài chính toàn cầu thì sở trường tài chính của vị CEO mới không còn phù hợp. Cuối năm 2008, ông Nam từ chức.
Lúc này, ông Vị đã mời ông Huỳnh Văn Rô, vốn giỏi trong lĩnh vực bán hàng, về thay ông Nam. Năm 2008, dưới thời ông Rô, tốc độ tăng trưởng của Giấy Sài Gòn có phần ổn định, song tình hình nhân sự lại có nhiều xáo trộn, không ít người giỏi đã ra đi. Đến cuối năm 2009 ông Rô cũng rời Giấy Sài Gòn, ông Vị lại trở về với vai trò CEO.
Cũng với mục đích thay đổi chiến lược, năm 2009, Công ty Cổ phần Kềm Nghĩa quyết định mở rộng thị trường ở nước ngoài, tham vọng xây dựng thương hiệu toàn cầu và mời ông Đỗ Hòa về làm CEO. Ông Hòa từng có hơn 10 năm làm CEO cho các công ty thương mại nước ngoài và Giám đốc Chiến lược Khu vực Đông Nam Á cùng với New Zealand và Úc của Tập đoàn Shell (Hà Lan) suốt 9 năm, trong đó có 2 năm làm chuyên gia cao cấp của Shell tại Indonesia. Tuy nhiên, sau 1 năm, ông Hòa cũng rời Kềm Nghĩa với lý do không đồng quan điểm về chiến lược phát triển của Công ty. Sau 1 năm ông Hòa làm CEO, doanh số của Kềm Nghĩa đã tăng từ 13% lên 21%, ngay trong giai đoạn khủng hoảng tài chính toàn cầu và doanh số của toàn ngành lúc đó giảm đến 40%.
Dù đều có kết cục chung đường ai nấy đi, nhưng sau những cuộc chia tay này ông Robert Trần cho rằng, các ông chủ doanh nghiệp nói trên vẫn đạt được những thành công nhất định vì đã chọn đúng CEO vào đúng giai đoạn phát triển của doanh nghiệp. Tuy nhiên, đến đây một câu hỏi khó lại được đặt ra là biết tìm ở đâu những CEO như vậy.
CEO đến từ đâu?
Theo ông Robert Trần, có 3 nguồn thuê CEO là người Việt làm quản lý tại các công ty đa quốc gia, Việt kiều và nhà quản lý người nước ngoài.
Nhóm CEO người Việt có mặt mạnh là am hiểu thị trường, có nhiệt huyết và tham vọng phát triển nhanh. Đặc biệt, họ cùng có chung ngôn ngữ, am hiểu văn hóa làm việc của người Việt. Trong khi đó, các CEO là Việt kiều đa số có kinh nghiệm quản lý từ các tập đoàn đa quốc gia và lợi thế của họ là giỏi ngoại ngữ, biết văn hóa làm việc ở trong nước và cả nước ngoài. Cuối cùng là CEO người nước ngoài, với lợi thế được đào tạo và làm việc trong môi trường chuyên nghiệp của các tập đoàn đa quốc gia, hiểu thị trường nước ngoài.