Lập Trình

Duyệt các bài viết được gắn thẻ Lập Trình

1677 bài viết

Cải thiện mối quan hệ giữa lập trình viên với sếp: dễ hay khó? (P2)

Cải thiện mối quan hệ giữa lập trình viên với sếp: dễ hay khó? (P2)

Cải thiện mối quan hệ giữa lập trình viên với sếp: dễ hay khó? (P1) Tôn trọng chuyên môn của nhau Điều này khá rõ ràng và đơn giản. Ở cấp quản lý, nếu bạn có thể tự tạo trang web hoặc hệ thống mà bạn đang yêu cầu các developers làm, hãy tự làm điều đó. Bạn không cần thiết phải yêu cầu developers làm việc đó thay cho bạn. Nó giống viêc yêu cầu một nhà thầu xây dựng cho bạn một ngôi nhà, và bạn là một dược sĩ, bạn đến gặp họ và yêu cầu họ xây dựng ngôi nhà theo cách của bạn. Các developers hoàn toàn không biết gì. Họ có kỹ năng và kinh nghiệm mà bạn có thể không có. Hãy tôn trọng nó và đặt niềm tin vào đó. Là một developer, bạn cũng phải làm điều tương tự. Bạn cần phải thành thật về những hạn chế trong kinh nghiệm của bạn. Đừng để cái tôi quá lớn ảnh hưởng công việc của bạn. Đừng cố gắng thể hiện biết tất cả. Bạn có thể nói “Tôi không biết làm thế nào để giải quyết vấn đề này” hoặc câu gì đó gần giống như thế. Hơn nữa, nó rất có lợi cho bạn khi tìm hiểu sâu tình hình kinh doanh của công ty và hiểu nó. Ít nhất phải tốn một khoảng thời gian tương đối dài để bạn có thể hoàn thành tốt code của bạn. Thử thách lẫn nhau Vâng! Điều này là bình thường ! Bạn hoàn toàn có thể bàn luận về cách tiếp cận. Thậm chí cũng có thể tranh luận. Bạn hoàn toàn có thể giữ vững lập trường của bạn hoặc đưa ra phương án tốt hơn. Khi bạn đang thử...

By stationd
Những blogger nổi tiếng nhất làng công nghệ

Những blogger nổi tiếng nhất làng công nghệ

Bài viết được sự cho phép của tác giả Trần Thị Thu Hà Trở thành một blogger, đặc biệt là trong giới công nghệ, đòi hỏi không chỉ tài năng và kiến thức mà còn cần một chút tư duy kinh doanh và sự may mắn nữa. Các blogger công nghệ dưới đây thực sự thành công nhờ hội tụ đầy đủ những yếu tố ấy, tạo được dấu ấn cho riêng mình và có mức thu nhập khiến chúng ta ngưỡng mộ. 25 blogger IT nổi tiếng mà dân lập trình ai cũng phải biết Câu chuyện về cái comment tại một blog nọ Ewdison Then – “SlashGear” Ewdison Then là người đồng sáng lập kiêm biên tập chính của website tin tức công nghệ và điện tử tiêu dùng này. Luôn cập nhật các thông tin mới nhất về các sản phẩm công nghệ và các ứng dụng kèm theo những nhận xét xác đáng và lời khuyên hữu ích đã giúp SlashGear của Then trở thành một trong những blog thành công nhất trên nền tảng WordPress. Sự thành công của SlashGear đem về cho Ewdison Then khoảng 60.000 đến 80.000 USD/tháng. Collis Ta’eed – “TutsPlus” TutsPlus là nơi cung cấp những video hướng dẫn, các bài học và rất nhiều phương tiện học tập về phần mềm ứng dụng và vô số các công cụ thiết kế. Người theo dõi trang này có thể học mọi thứ từ việc đơn giản như download một bức ảnh đến phức tạp như thiết kế một ứng dụng phần mềm. Nhờ có TutsPlus, Collis Ta’eed kiếm được 55.000 – 120.000 USD/tháng. Vitaly Friedman – “SmashingMagazine” Anh là người sáng lập SmashingMagazine, một blog chuyên dành cho các nhà thiết kế website , cập nhật những tin tức mới nhất...

By stationd
5 điều lập trình viên Java Developer chắc chắn sẽ thích ở Kotlin

5 điều lập trình viên Java Developer chắc chắn sẽ thích ở Kotlin

Trong năm 2018, chúng ta đã chứng kiến ngôn ngữ Kotlin ngày càng trở nên phổ biến hơn bao giờ hết. Nó được sử dụng rộng rãi không chỉ trong phát triển ứng dụng di động, mà còn cho các hệ thống server. Như bạn đã biết, Kotlin là một ngôn ngữ lập trình statically-typed trên JVM. Đó là lý do tại sao nó thường được so sánh với ngôn ngữ Java. Có thể nói, một trong những lý do chính cho sự phổ biến của Kotlin là ở sự đơn giản. Nó thật sự rất tinh gọn và loại bỏ những phần thừa thãi từ Java. Tuy nhiên, Kotlin vẫn cũng rất giống với Java để bất kỳ nhà phát triển Java có kinh nghiệm nào đều có thể làm quen với Kotlin chỉ trong vài giờ. Trong bài viết này, tôi sẽ thảo luận về một số tính năng thú vị của Kotlin được sử dụng để phát triển phía server so với Java. Xin lưu ý rằng đây là danh sách cá nhân của tôi về các tính năng yêu thích của Kotlin mà Java không hề có. Giải quyết vấn đề với mà Java thường gặp phải với các Collections Tôi thực sự thích Java, nhưng đôi khi phải làm việc với các collection chung chung có thể là một trải nghiệm vô cùng khó chịu, đặc biệt nếu bạn phải sử dụng các loại type lạ. Tin tốt là Kotlin không có bất kỳ loại type nào như vậy. Thay vào đó, nó cung cấp hai tính năng khác được gọi là declaration-site variance và type projection. Bây giờ, hãy xem xét hệ thống phân cấp class sau: abstract class Vehicle { } class Truck extends Vehicle { } class PassengerCar extends Vehicle { }...

By stationd
Kết quả chung cuộc benchmark hiệu năng giữa PHP 7.0 và HHVM

Kết quả chung cuộc benchmark hiệu năng giữa PHP 7.0 và HHVM

Thật tuyệt vời cho tất cả những ai sử dụng PHP mỗi ngày, không chỉ các developer hay các công ty hosting mà còn cả user nữa. Chúng ta có những website nhanh hơn và dịch vụ web cho tất cả mọi người. Vì nghiện việc tối ưu thời gian load của các website và để xem phiên bản mới của PHP này cải tiến và đáp ứng được bao nhiêu so với mong đợi, chúng ta sẽ đưa một phiên bản đã public của PHP 7.0 vào kiểm tra và so sánh với PHP 5.6.16 và HHVM 3.10.1 trên một server vật lý(vì ảo hóa không phân biệt được kết quả). Việc kiểm tra bao gồm WordPress 4.3.1, Drupal 8, Magento 2.0 CE, OctoberCMS build 309, PyroCMS v3 beta2, và Flarum v0.1.0-beta.4. Server vật lý dùng để benchmark có cấu hình Intel Xeon E5-2630v3 processor (8 CPU cores và 16 threads), 64 GB RAM và 2 x 4 TB SAS 7200 rpm HGST disks in RAID 0. Chúng tôi dùng MariaDB 10.1.9 cho MySQL server và Nginx 1.9.7 cho web server. WordPress 4.4 Dùng dummy content từ wptest.io và đã benchmark trang home trong một phút với 15 CCU. WordPress là lần test duy nhất chúng tôi có thể sử dụng chế độ Repo Authoritative của HHVM mà không cần tốn thời gian sửa đổi phần mềm này. Nó giúp tăng thêm một chút tốc độ nữa nhưng không dành cho mọi người vì đòi hỏi phải thêm một số bước nâng cao để có thể chạy được. Kết quả benchmark của WordPress 4.4 HHVM RepoAuthoritative: 358.33 trans/sec Kết quả benchmark của WordPress 4.4 HHVM: 335.13 trans/sec Kết quả benchmark của WordPress 4.4 PHP 7.0: 287.92 trans/sec Kết quả benchmark của WordPress 4.4 PHP 7.0 không dùng opcache: 84.87...

By stationd
Tìm hiểu tham số và đối số trong hàm C++

Tìm hiểu tham số và đối số trong hàm C++

Đặt vấn đề Trong bài học trước, chúng ta đã học về hàm có thể trả về một giá trị cho người gọi hàm đó. Chúng ta đã sử dụng điều đó để tạo ra một hàm getValueFromUser mà chúng ta đã sử dụng trong chương trình này: # include <iostream> int getValueFromUser ( ) { std :: cout << "Enter an integer: " ; int input { } ; std :: cin >> input ; return input ; } int main ( ) { int num { getValueFromUser ( ) } ; std :: cout << num << " doubled is: " << num * 2 << 'n' ; return 0 ; } Tuy nhiên, điều gì sẽ xảy ra nếu chúng ta muốn đầu ra của một hàm để cho vào một hàm khác? Bạn có thể thử một cái gì đó như thế này: # include <iostream> int getValueFromUser ( ) // this function now returns an integer value { std :: cout << "Enter an integer: " ; int input { } ; std :: cin >> input ; return input ; // added return statement to return input back to the caller } // This function won't compile // The void return type means the function won't return a value to the caller void printDouble ( ) { std :: cout << num << " doubled is: " << num * 2 << 'n' ; } int main ( ) { int num { getValueFromUser ( ) } ; printDouble ( ) ; return 0 ; } Điều này đã không được biên dịch, vì hàm printDouble không biết định danh num là gì?. Bạn có thể thử định nghĩa num là một biến bên trong hàm printDouble(): void printDouble ( ) { int num...

By stationd
Search theo custom field trong wordpress và các ứng dụng của nó

Search theo custom field trong wordpress và các ứng dụng của nó

Bài viết được sự cho phép của tác giả Võ Quang Huy Để xây dựng tính năng search trong wordpress thì phải nói cực kỳ đơn giản, các bạn chỉ cần vài ba đoạn code nhỏ là có thể làm được. Nhưng… Search theo custom field ? Các bạn đã thử chưa Nếu chưa thì hôm này mình sẽ hướng dẫn cho các bạn cách để làm chức năng đó. Search cha con trong wordpress tưởng không dễ mà dễ không tưởng Custom authentication filter đăng nhập không cần password trong Spring Security Custom checkbox là gì ? Và cách tạo custom checkbox đẹp dễ dàng Để ôn lại 1 tý thì mình sẽ nhắc lại cách tạo 1 form search bình thường trong wordpress. Các bạn xem đoạn code phía dưới nha Tạo form search trong wordpress Form search đơn giản nhất <form action="/" method="GET" role="form" _lpchecked="1"> <input type="text" name="s" id="s-home" autocomplete="off" placeholder="Từ khóa...."> <button type="submit" class="button-search"><i class="fa fa-search"></i></button> </form> Search theo 1 post type nào đó <form action="/" method="GET" role="form" _lpchecked="1"> <input type="hidden" name="post_type" value="post"> <input type="text" name="s" id="s-home" autocomplete="off" placeholder="Từ khóa...."> <button type="submit" class="button-search"><i class="fa fa-search"></i></button> </form> Trong ví dụ trên mình search các bài viết thuộc post type là post nha. Các post type khác sẽ không được hiển thị trong kết quả search Tìm việc làm WordPress lương cao mới nhất trong tháng tại đây <<< Search theo 1 category nào đó <form action="/" method="GET" role="form" _lpchecked="1"> <select name="cat" id="cat" class="form-control"> <option value="">Chọn chuyên mục</option> <?php $args = array( 'hide_empty' => 0, 'taxonomy' => 'category' ); $cates = get_categories( $args ); foreach ( $cates as $cate ) { ?> <option value="<?php echo $cate->term_id; ?>"><?php echo $cate->name; ?></option> <?php } ?> </select> <input type="text" name="s" id="s-home" autocomplete="off" placeholder="Từ khóa...."> <button type="submit" class="button-search"><i class="fa fa-search"></i></button> </form> Đoạn...

By stationd
Hành trình chuyển đổi của Elsa từ Native sang Flutter

Hành trình chuyển đổi của Elsa từ Native sang Flutter

ELSA , ứng dụng học phát âm tiếng Anh hàng đầu với hàng triệu người dùng toàn cầu, đã và đang đối mặt với những thách thức lớn trong việc mở rộng mobile app của mình để đáp ứng nhu cầu ngày càng tăng của người dùng. Bằng cách chuyển đổi từ nền tảng Native sang Flutter, một framework đa nền tảng, có khả năng tối ưu hiệu suất và đẩy nhanh tốc độ phát triển sản phẩm, ELSA đã giải quyết được bài toán scale up của mình. Thách thức scale up và bài toán của ELSA Trong bối cảnh thị trường ứng dụng di động cạnh tranh khốc liệt, việc mở rộng ứng dụng là yếu tố then chốt để giữ vững vị thế và thu hút người dùng mới. Khả năng mở rộng (scalability) của ứng dụng được đánh giá dựa trên khả năng hoạt động ổn định, mượt mà khi: Số lượng người dùng tăng đột biến : Ứng dụng phải đảm bảo hiệu suất ổn định khi có hàng triệu người dùng truy cập và sử dụng đồng thời. Lượng dữ liệu xử lý ngày càng lớn : Việc lưu trữ, xử lý và phân tích lượng dữ liệu khổng lồ từ người dùng là một bài toán khó. Quy mô đội ngũ phát triển mở rộng : Quản lý hiệu quả và duy trì sự phối hợp nhịp nhàng giữa các đội ngũ kỹ thuật là điều cần thiết. ELSA, với vị thế dẫn đầu trong lĩnh vực edtech và hơn 50 triệu lượt tải xuống trên toàn cầu, cũng phải đối mặt với những thách thức không nhỏ trong việc mở rộng ứng dụng. Ứng dụng native ban đầu của ELSA, được phát triển riêng biệt trên hai nền tảng iOS và Android,...

By stationd
Các giai đoạn trong vòng đời của Android Activity

Các giai đoạn trong vòng đời của Android Activity

Bài viết được sự cho phép của tác giả Trần Hữu Cương Giới thiệu lớp Activity trong Android Lớp Activity là thành phần quan trọng nhất của ứng dụng Android, cách mà chúng hoạt động tạo thành nền tảng cơ bản của mô hình lập trình ứng dụng. Khi một Activity chỉ định là Activity chính, nó sẽ là màn hình đầu tiên khi khởi chạy ứng dụng. Một Activity này lại có thể gọi và kích hoạt một Activity khác. Activity chịu trách nhiệm chuyển giao sự kiện cho các view trong nó và quản lý vòng đời của nó. Một ứng dụng Android có thể có một hoặc nhiều Activity. Một class được gọi là Activity khi nó extend (kế thừa) từ những class cha như : AppCompatActivity, Activity, FragmentActivity Tuyển dụng lập trình viên android các vị trí Các giai đoạn trong vòng đời của Android Activity Để tạo một Activity thì bạn phải tạo ra một lớp kế thừa lớp Activity, sau đó triển khai tối thiểu phương thức onCreate(Bundle savedInstanceState) , sau đó tùy ngữ cảnh mà khi Activity hoạt động vòng đời của nó diễn ra như mô tả ở hình sau: onCreate(Bundle savedInstanceState) : Được gọi khi hoạt động mới được tạo, tại đây khởi tạo các biến, nạp giao diện layout …, phương thức này cũng nhận dữ liệu lưu lại trạng thái hoạt động trước đó (với mục đích để phục hồi – savedInstanceState). onStart() : Được gọi ngay trước khi Activity hiển thị trên màn hình. onResume() : Được gọi ngay khi Activity bắt đầu có thể tương tác với người dùng, và Activity nằm trên cùng trong danh sách các Activity của hệ thống. onPause() : Được gọi khi hệ thống sắp kích hoạt một Activity khác, nếu bạn...

By stationd
AB testing là gì? Tại sao phải làm AB testing?

AB testing là gì? Tại sao phải làm AB testing?

Bài viết được sự cho phép của tác giả Lê Chí Dũng A/B testing là gì? A/B testing (hay còn được gọi là split testing) là một quy trình mà trong đó hai phiên bản (A và B) sẽ được cùng so sánh trong một môi trường / tình huống được xác định và qua đó đánh giá xem phiên bản nào hiệu quả hơn. Phiên bản ở đây có thể là mọi thứ từ một hình banner, trang web, mẫu quảng cáo cho tới email và hiệu quả được đánh giá dựa trên mục tiêu của người làm test dành cho các phiên bản này. 04 Điều Cần Chú Ý Cho Người Mới Làm Automation Test A/B testing và những tiêu chí chính để đánh giá sự thành công của ASO Một website bán hàng thì có mục tiêu là muốn khách hàng phải mua hàng hoặc mua nhiều hơn. Một banner quảng cáo thì có mục tiêu là muốn khách hàng phải bấm vào đó nhiều hơn. Một email thì có mục tiêu là khách hàng phải mở ra xem nhiều hơn. Tất cả mọi thứ đều có một mục tiêu nào đó, nhằm khiến cho khách hàng thực hiện một hành động mong muốn nào đó, hành động này được gọi là conversion. Tỉ lệ người thực hiện các hành động đó được gọi là conversion rate (tỉ lệ chuyển đổi). Và việc đo lường và đánh giá 2 phiên bản A và B cũng chính là việc đo lường và đánh giá conversion rate của tiến trình đang thực hiện. Tại sao lại cần phải làm A/B testing? Nếu bạn có một lượng khách hàng nhất định và bạn muốn tăng số lượng conversion lên thì cách thứ nhất là cần phải mang nhiều khách hàng...

By stationd
Sửa lỗi .NET Runtime Optimization Services ngốn nhiều CPU, RAM trên Windows

Sửa lỗi .NET Runtime Optimization Services ngốn nhiều CPU, RAM trên Windows

Bài viết được sự cho phép của blogchiasekienthuc.com .NET Framework là một trong những thành phần rất quan trọng có trên hệ điều hành Windows, được phát triển bởi chính Microsoft. Nếu bạn muốn sử dụng các phần mềm quen thuộc để làm việc với hệ điều hành này thì bắt buộc phải cài đặt đầy đủ .NET Framework . Vâng, nguyên nhân chính là bởi hầu hết các phần mềm chạy trên Windows hiện nay đều được xây dựng dựa trên nền tảng .NET này. Các thành phần trong hệ sinh thái .NET List các thuật ngữ căn bản .NET- Bách khoa toàn thư Tất nhiên, .NET Framework 3.0 thường sẽ được đi kèm khi bạn cài đặt hệ điều hành Windows rồi, vậy nên trong quá trình sử dụng nếu có xảy ra lỗi gì liên quan đến .NET Framework thì bạn chỉ việc cài thêm phiên bản 4.0 nữa là có thể sử dụng được bình thường. Nhưng đó là trên lý thuyết chứ dạo gần đây Windows 10 của mình hay bị giựt lag do một tiến trình có tên .NET Runtime Optimization Services liên tục chạy và chiếm rất nhiều tài nguyên phần cứng của máy tính (CPU, RAM..). Vậy .NET Runtime Optimization Services là gì, nó có phải là virus không? Mời các bạn hãy cùng mình đi tìm câu trả lời thông qua bài viết bên dưới đây nhé ! #1. .NET Runtime Optimization Services là gì? Nó có phải Virus không? Nếu bạn đã sử dụng Windows 10 từ lâu thì tình trạng đơ, lag máy là chuyện thường xuyên như cơm bữa đúng không, nhất là mấy máy tính còn sử dụng ổ cứng HDD. Và khi bạn mở Task Manager lên, bạn giật mình thấy một tiến trình có tên...

By stationd
[Tự học C++]  Giới thiệu về phạm vi(scope) của biến hoặc hàm cục bộ

[Tự học C++] Giới thiệu về phạm vi(scope) của biến hoặc hàm cục bộ

Biến cục bộ Các tham số của hàm, cũng như các biến được xác định bên trong thân hàm, được gọi là các biến cục bộ (trái ngược với các biến toàn cục, mà chúng ta sẽ thảo luận trong chương tiếp theo). 1 2 3 4 5 6 int add( int x, int y) // function parameters x and y are local variables { int z{ x + y }; // z is a local variable too return z; } Trong bài học này, chúng tôi sẽ xem xét một số đặt điểm của các biến cục bộ một cách chi tiết hơn. Vòng đời của biến cục bộ Chúng tôi đã thảo luận về cách định nghĩa biến như int x; làm cho biến được khởi tạo khi câu lệnh này được thực thi. Các tham số của hàm được tạo và khởi tạo khi hàm được gọi và các biến trong thân hàm được tạo và khởi tạo tại thời điểm định nghĩa. Ví dụ: 1 2 3 4 5 6 int add( int x, int y) // x and y created and initialized here { int z{ x + y }; // z created and initialized here return z; } Câu hỏi tiếp theo là, khi nào thì một biến cục bộ bị hủy? Các biến cục bộ bị hủy theo thứ tự ngược lại của việc khởi tạo nó khi tới dấu ngoặc nhọn cuối cùng của hàm, nơi mà nó được định nghĩa. 1 2 3 4 5 6 int add( int x, int y) { int z{ x + y }; return z; } // z, y, and x destroyed here Giống như thời gian sống của một con người, chính là thời gian giữa lúc sinh và lúc chết của họ, thời...

By stationd
AOMEI PE Builder: Tự tạo bộ công cụ cứu hộ máy tính (WinPE)

AOMEI PE Builder: Tự tạo bộ công cụ cứu hộ máy tính (WinPE)

Bài viết được sự cho phép của blogchiasekienthuc.com Nói đến công cụ cứu hộ máy tính thì chắc chắn chúng ta, những kỹ thuật viên, hay là những người có niềm đam mê và thích “vọc vạch” máy tính sẽ nghĩ ngay đến Hiren’s Boot , DLC Boot hay AnhDv Boot đúng không? Vâng, tất nhiên rồi ! Đây đều là những bộ công cụ cứu hộ máy tính tuyệt vời, và nó đều đã được Admin giới thiệu trong chuyên mục USB BOOT có trên Blog. Vậy nên hôm nay mình sẽ không giới thiệu với bạn một bộ công cụ nào nữa, mà thay vào đó mình sẽ chia sẻ với các bạn cách để tự tạo một bộ công cụ cứu hộ máy tính cho riêng mình, bạn có thể thỏa mái thêm bớt bất kì phần mềm nào mà mình muốn. Nghe có vẻ khá thú vị rồi đúng không nào ◉◡◉ Okay, vậy thì bắt đầu nhé ! 6 project vui dành cho dev build khi chán Anh hào UX hội tụ tại Building your UX Design from scratch #1. Nhận xét cá nhân về AOMEI PE Builder Đầu tiên, phần mềm này sẽ giúp bạn tạo ra bộ công cụ Windows 10 PE cùng với các phần mềm khác mà bạn thêm bớt vào. Có thể là bộ công cụ cứu hộ mà bạn tự làm ra sẽ không được đầy đủ và đa dạng như các bộ cứu hộ chuyên nghiệp có trên Blog, tuy nhiên nó là sản phẩm của bạn, và nó phù hợp với nhu cầu sử dụng của bạn. Bởi tất nhiên rồi, đó đều là những phần mềm do chính bạn thêm vào mà 🙂 Ưu điểm lớn nhất của bộ cứu hộ này là độ tùy biến...

By stationd