Пропуснете до основното съдържание »

Вашата кошница е празна

Изкуството на разбираемия код

Редовна цена: 22,00 лв.

Специална цена: 17,60 лв.

Наличност: На склад

Изкуството на разбираемия код

Кликнете два пъти върху изображението, за да го видите в по-голям размер

Намаляване
Увеличаване

Подробности

Какви теми се разглеждат в книгата Настоящата книга разглежда изкуството при писането на код, така че той да бъде лесно четим. Ключовата идея в книгата е, че кодът трябва да бъде разбираем. По-конкретно, вашата цел трябва да бъде да намалите времето, което е необходимо на някой друг, за да разбере вашия код. Тази идея е представена с помощта на много примери, написани на различни езици, включително C++, Python, JavaScript и Java. Авторите да избегнали употребата на специфични елементи на езиците, така че дори да не познавате някой от тях, лесно ще можете да разберете примерите. (Авторите са на мнение, че концепциите, свързани с четивността, не зависят от езика, който използвате.) Всяка глава разглежда различен аспект от програмирането и представя начини за писане на лесно разбираем код. Книгата е обособена в четири части: - Козметични подобрения Именуване, коментиране и естетика – прости съвети, които са приложими към всеки ред от основния ви код - Опростяване на цикли и логика Начини за усъвършенстване и подобряване на разбираемостта на циклите, логиката и променливите във вашата програма - Реорганизиране на кода Техники от по-високо ниво за организиране на големи блокове с код и решаване на проблеми на функционално ниво - Избрани теми Прилагане на принципа за „лесно разбираем код" към тестването и към пример с голяма структура от данни
ПРЕДГОВОР
ПРОГРАМНИЯТ КОД ТРЯБВА ДА БЪДЕ ЛЕСНО РАЗБИРАЕМ
Какво прави един програмен код „по-добър“?
Основна теорема на разбираемостта
По-малкото винаги ли е по-добро?
Времето за разбиране противоречи ли на други цели?
Трудната част
ЧАСТ I КОЗМЕТИЧНИ ПОДОБРЕНИЯ
ДОБАВЯНЕ НА ИНФОРМАЦИЯ КЪМ ИМЕНА
Избор на специфични думи
Откриване на „по-оригинални“ имена
Избягване на универсални имена като tmp и retval
Използвайте конкретни имена, вместо абстрактни
Добавяне на допълнителна информация към име
Колко дълго трябва да бъде едно име?
Използвайте форматиране на имената, за да изразите някакво значение
Резюме
ИМЕНАТА НЕ ТРЯБВА ДА БЪДАТ ПОДВЕЖДАЩИ
Пример: Filter()
Пример: Clip(text, length)
Избирайте min и max за граници (включващи минимума или максимума)
Избирайте first (първи) и last (последен) при използване на диапазони,
включващи долната и горната граница
Използвайте begin (начало) и end (край) за диапазони,
които включват началото, но изключват края на диапазона
Именуване на променливи, съдържащи логическа стойност
Съответствие с очакванията на потребителите
Пример: избор на име от няколко възможни решения
Резюме
ЕСТЕТИКА
Защо естетиката има значение?
Пренареждайте новите редове, за да осигурите консистентност и компактност
Използвайте методи, за да отстраните безпорядъка
При необходимост използвайте подравняване в колони
Избирайте логическа последователност и я използвайте закономерно
Организирайте декларациите в блокове
Разделете кода си на „параграфи“
Собствен стил срещу консистентност
Резюме
КЪДЕ ТРЯБВА ДА СЕ ПОСТАВЯТ КОМЕНТАРИ
Къде НЕ трябва да поставяте коментари
Записвайте идеите си
Поставяйте се на мястото на читателя
Последни размисли – преодоляване на „творческата криза“ на писателя
Резюме
ПИСАНЕ НА ПРЕЦИЗНИ И КОМПАКТНИ КОМЕНТАРИ
Придържайте се към писане на компактни коментари
Избягвайте двусмислените местоимения
Изпипвайте добре изреченията
Прецизно описвайте поведението на функциите
Използвайте примери за входяща/изходяща информация,
която илюстрира особените случаи
Упоменавайте предназначението на кода си
Коментари за именувани параметри на функции
Използвайте специфични, информационни думи
Резюме
ЧАСТ II ОПРОСТЯВАНЕ НА ЦИКЛИЧНИ СТРУКТУРИ И ЛОГИКА
ПО-РАЗБИРАЕМО УПРАВЛЕНИЕ НА ИЗПЪЛНЕНИЕТО
Подредба на аргументите в условни изрази
Подредба на блоковете if/else
Условен израз ?: (наричан още „Троичен оператор“)
Избягвайте цикли do/while
Преждевременно излизане от функция
Скандалният оператор goto
По-малко влагане
Можете ли да проследите изпълнението на програмата?
Резюме
РАЗДРОБЯВАНЕ НА ОГРОМНИ ИЗРАЗИ
Поясняващи променливи
Обобщаващи променливи
Използване на законите на Де Морган
Злоупотреба със short-circuit логиката
Пример: справяне със сложна логика
Раздробяване на огромни изрази
Друг креативен начин за опростяване на изрази
Резюме
ПРОМЕНЛИВИ И ЧЕТИВНОСТ
Премахване на променливи
Намалете областта на действие на своите променливи
Използвайте променливи с постоянна стойност
Последен пример
Резюме
ЧАСТ III РЕОРГАНИЗИРАНЕ НА КОДА
ОТДЕЛЯНЕ НА ВТОРОСТЕПЕННИ ПРОБЛЕМИ
Въвеждащ пример: findClosestLocation()
Изцяло помощен код
Друг код с общо предназначение
Създавайте много код с общо предназначение
Функционалност, специфична за проекта
Опростяване на съществуващ интерфейс
Преобразуване на интерфейс в съответствие с вашите нужди
Твърде сериозно приемане на нещата
Резюме
ИЗПЪЛНЯВАЙТЕ ЗАДАЧИТЕ ЕДНА ПО ЕДНА
Задачите могат да бъдат малки
Извличане на стойности от обект
По-голям пример
Резюме
ПРЕВРЪЩАНЕ НА МИСЛИ В КОД
Oбясняване на логиката на разбираем език
Познаването на библиотеките помага
Прилагане на метода за решаване на по-големи проблеми
Резюме
ПИСАНЕ НА ПО-МАЛКО КОД
Не имплементирайте този елемент – той не ви е необходим
Оспорвайте и намалявайте изискванията си
Поддържане на малък обем на кода
Разучете библиотеките си
Пример: използване на инструменти на Unix вместо писане на код
Резюме
ЧАСТ IV ИЗБРАНИ ТЕМИ
ТЕСТВАНЕ И ЧЕТИВНОСТ
Разработвайте тестове, които са лесни за четене и поддръжка
Къде е проблемът в този тест?
Подобряване четивността на теста
Подобряване четивността на съобщенията за грешки
Избор на подходящи входни данни за тестване
Именуване на тестови функции
Какви бяха грешките в този тест?
Разработки, подходящи за тестване
Твърде сериозно приемане на нещата
Резюме
ПРОЕКТИРАНЕ И ИМПЛЕМЕНТИРАНЕ НА „БРОЯЧ МИНУТА/ЧАС“
Задачата
Дефиниране на класа за интерфейса
Първи опит: просто решение
Втори опит: конвейерен дизайн
Трети опит: дизайн с ограничени времеви групи
Сравняване на трите решения
Резюме
ДОПЪЛНИТЕЛНО ЧЕТИВО
ИНДЕКС
Въпреки че е израстнал в цирка, Дъстин Босуел от ранни години разбира, че се справя по-добре с компютрите, отколкото с акробатиката. Дъстин завършва бакалавърска степен в Caltech, където се задълбочава интересът му към компютърните науки, и след това заминава да учи в университета в Сан Диего, откъдето получава дипломата си за магистър. В продължение на пет години работи за Google по множество проекти, които включват и инфраструктурата за търсене на уеб страници. Той е създал много уеб сайтове и обожава да работи с „големи данни" и в областта на машинното обучение. В последно време Дъстин е запален по създаването на Интернет компании, а свободното си време прекарва в екскурзии из планините на Санта Моника и в грижи за първото си дете.

В продължение на повече от 10 години Тревор Фучър работи по много мащабни софтуерни проекти в Microsoft и Google. В момента разработва инфраструктура за търсене в Google. В свободното си време участва в състезания по компютърни игри, чете научна фантастика и работи като главен координатор в новата модна компания на съпругата си. Тревор притежава бакалавърска степен по електронно инженерство и компютърни науки от университета в Бъркли.