Розробник із десятирічним досвідом у програмуванні поділився у мережі добіркою книг з програмної інженерії. В ній немає корисної літератури про конкретні мови або платформи, проте тут ви знайдете найкращі практики, як організувати та покращити свій код.
Clean Code (Robert Martin)
Ймовірно, це найрекомендованіша книга з програмної інженерії. Письмовий та організаційний стиль «дядечка Роба» вважається золотим стандартом написання чистого та підтримуваного коду .
Якщо вам сподобається ця книга, пошукайте в інтернеті інші книги автора на цю тему — він також писав про проектування чистої архітектури, організацію завдань за допомогою Clean Agile та загальний посібник для професіоналів програмного забезпечення за допомогою Clean Coder.
The Pragmatic Programmer (Andre Hunt, David Thomas)
За словами автора добірки, якщо «Чистий кодер» зробив його найкращим програмістом, ніж він був раніше, то «Прагматичний програміст» — найкращим інженером-програмістом. Між кодуванням та інженерією існує велика прірва, яку можна подолати, вивчивши практичні аспекти цієї роботи.
Автор книги описує прагматизм як сукупність п’яти ключових якостей:
- першопрохідник — знати новітні технології та тенденції;
- допитливий — розуміти, як інші роблять свою роботу, і переймати їхній досвід;
- критик — ніколи не приймати слова/поради за чисту монету;
- реаліст — тверезо оцінювати свої здібності (якість, якої не вистачає більшості розробників);
- майстер на всі руки — бути знайомим із широким спектром технологій, що дозволить вам зберігати гнучкість протягом усієї кар’єри.
The Mythical Man-Month (Frederick Brooks Jr.)
Чи можливо народити одну дитину за місяць, використовуючи дев’ять вагітних жінок? Зрозуміло, що ні, але деякі менеджери точно так вважають.
Колись у вашій кар’єрі настане момент, коли вам доведеться прогнозувати терміни виконання проекту. І ви помітите, що цей аспект розробки програмного забезпечення більше схожий на мистецтво, ніж на точну науку. Ця книга є введенням у деякі проблеми планування, містить застереження при роботі з великою командою інженерів-програмістів.
Release It (Michael T Nygard)
Книга містить важливі поради щодо управління продуктом на етапі, коли ви будете готові відправити свій код у реліз. Завжди важко і хвилююче випустити у світ своє дітище після того, як ви так довго працювали над ним. Тому що, як тільки реальні клієнти почнуть його використовувати, це миттєво спровокує купу головного болю (бо не буває досконалих продуктів).
Ця книга підготує вас до натиску скарг клієнтів, інвесторів, розгніваних менеджерів та погроз примусового звільнення, які природно виникають після того, як ви випускаєте найпершу версію свого продукту.
Essential Scrum (Rubin Kenneth S.)
Як ви розставляєте пріоритети у роботі над великою системою, яку необхідно впровадити з нуля? Як взагалі почати розбивати жахливо великий та неоднозначний новий проект на дрібніші завдання, зрозумілі навіть джуніору?
Найчастіше для управління проектами та завданнями використовується метод Scrum (форма Agile-розробки). Він популярний, тому що дійсно працює, і це зручний інструмент, з яким повинен бути знайомий кожен айтівець.
Code Complete (by Steve McConnell)
Книга, по суті, є докладним посібником з програмної інженерії аж на 900 сторінок. Вона охоплює широкий набір тем — від структурування коду до налагодження, налаштування продуктивності, документації тощо. Зрозуміло, не обов’язково читати її від початку до кінця, але з її допомогою можна заповнити прогалини у знаннях. Завдяки своїй повноті «Code Complete» стала однією з книг із розробки ПО, що продаються найбільше у світі.
Patterns of Enterprise Application Architecture (Martin Fowler)
Не найсвіжіша книга (її понад 20 років), деякі приклади коду трохи застарілі, проте принципи, викладені в ній, є непідвладними часу. Ймовірно, ви чули чи використовували шаблон проектування model-view-controller? Це лише одна з концепцій, представлених у цій книзі.
По суті, книга присвячена організації складного програмного забезпечення таким чином, щоби максимально спростити його довгострокову підтримку.
Refactoring (Martin Fowler)
Ще одна книга Мартіна Фаулера, але вже на тему еволюції коду. Вона прийде на виручку, якщо вам час від часу доводиться мати справу з застарілим кодом, який важко зрозуміти — на це витрачається багато часу і здається, що вже легше переписати все наново.
Рефакторинг проводиться не тільки для застарілих систем, це звичайна частина повсякденного кодування. Поради та приклади в книзі навчать вас, як покращити читабельність та безпеку коду, нічого при цьому не порушуючи.
Code (Charles Petzold)
Вона у добірці більше як джерело натхнення, ніж практичних порад. У Code представлений досвід і показана винахідливість деяких першопрохідців у розробці, що заклали основу сучасної технологічної індустрії.
The post 9 книг, які варто прочитати кожному програмісту first appeared on Highload.today.