Запитання з тегом «coding-style»

Стиль кодування - це набір вказівок, які допомагають читати та розуміти вихідний код.

4
Як ви зберігаєте код з читанням продовжень / зворотних викликів?
Короткий зміст: Чи існують чітко встановлені моделі найкращої практики, які я можу дотримуватися, щоб не читати код, незважаючи на використання асинхронного коду та зворотних викликів? Я використовую бібліотеку JavaScript, яка робить багато матеріалів асинхронно і сильно покладається на зворотні дзвінки. Здається, що написання простого методу "навантаження А, завантаження В, ..." …

5
Функції, що повертають рядки, гарний стиль?
У своїх програмах на C мені часто потрібен спосіб скласти рядкове представлення моїх ADT. Навіть якщо мені не потрібно надрукувати рядок на екрані будь-яким способом, дуже охайно мати такий метод для налагодження. Тож ця функція часто з’являється. char * mytype_to_string( const mytype_t *t ); Я фактично розумію, що у мене …

5
Якщо інша драбина, яка повинна відповідати всім умовам, - чи слід додавати надлишковий заключний пункт?
Це те, чим я багато займаюся останнім часом. Приклад: setCircle(circle, i, { current }) { if (i == current) { circle.src = 'images/25CE.svg' circle.alt = 'Now picking' } else if (i < current) { circle.src = 'images/25C9.svg' circle.alt = 'Pick failed' } else if (i > current) { circle.src = …

4
Гарний стиль коду для впровадження перевірок даних скрізь?
У мене є проект досить великого розміру, що я більше не можу тримати кожен аспект в голові. Я маю справу з низкою класів і функцій в ньому, і я передаю дані навколо. З часом я помітив, що я постійно отримував помилки, тому що я забув, яку точну форму мають мати …

4
Переробка функції, що повертає цілий код, який представляє багато різних статусів
Я успадкував якийсь жахливий код, до якого я включив короткий зразок нижче. Чи існує назва цього анти-шаблону? Які рекомендації щодо цього рефакторингу є? // 0=Need to log in / present username and password // 2=Already logged in // 3=Inactive User found // 4=Valid User found-establish their session // 5=Valid User …

5
Чи погано розміщувати текстові маркери всередині рядків? Чи є альтернатива?
Я працюю з масивними струнами, які потребують багато маніпуляцій. Наприклад, я можу створити такий рядок: Частина 1 Човен Розділ A Програмування Частина 2. Роздільні човни для програмування. Розділ AA Записи SQL. Рядок був би занадто великим, щоб вручну перевірити кожну його частину. Тепер мені потрібно splitце stringв stringlistрозділи та частини. …

3
Член: Використовуйте унікальні ідентифікатори та об’єкт домену
Після декількох корисних відповідей на те, чи слід використовувати об’єкт домену або унікальний ідентифікатор як параметр методу / функції тут Ідентифікатор проти об’єкта домену як параметр методу , у мене є аналогічне запитання: члени (попереднє обговорення питань не вдалося виконати покриваємо це). Які плюси та мінуси використання унікальних ідентифікаторів як …

4
Невже використання внутрішніх блоків області в межах функції погано?
Є деякі (досить рідкісні) випадки, коли існує ризик: повторне використання змінної, яка не планується повторно використовувати (див. приклад 1), або використовуючи змінну замість іншої, семантично близької (див. приклад 2). Приклад 1: var data = this.InitializeData(); if (this.IsConsistent(data, this.state)) { this.ETL.Process(data); // Alters original data in a way it couldn't be …

3
Чи покладається на неявне перетворення аргументів небезпечним?
У C ++ є функція (я не можу визначити її належну назву), яка автоматично викликає відповідні конструктори типів параметрів, якщо типи аргументів не є очікуваними. Дуже простий приклад цього виклику функції, яка чекає на std::stringз const char*аргументом. Компілятор автоматично генерує код для виклику відповідного std::stringконструктора. Мені цікаво, чи це так …

7
Тимчасові змінні та вимоги до довжини рядка
Я читав Рефакторинг Мартіна Фаулера . Це, як правило, чудово, але, схоже, одна з рекомендацій Фоулера викликає невеликі проблеми. Фоулер рекомендує замінити тимчасові змінні на запит, тож замість цього: double getPrice() { final int basePrice = _quantity * _itemPrice; final double discountFactor; if (basePrice > 1000) discountFactor = 0.95; else …

7
Чи поганий стиль зайве перевірити стан?
Я часто потрапляю на позиції в своєму коді, де я знову і знову перевіряю певний стан. Я хочу навести вам невеликий приклад: припустимо, що існує текстовий файл, який містить рядки, що починаються з «а», рядки, що починаються з «b» та інші рядки, і я фактично хочу лише працювати з першими …

4
Як уникнути загальних назв для абстрактних занять?
Загалом, добре уникати таких слів, як "обробляти" або "обробляти", як частина імен рутини та імен класів, якщо ви не маєте справу з (наприклад) ручками файлів або (наприклад) unix-процесами. Однак абстрактні класи часто насправді не знають, що вони збираються робити з чимось, окрім, скажімо, обробки. У моїй теперішній ситуації у мене …

8
Що з усіма цими правилами кодування?
Я завжди підтримував ідею наявності правил кодування для розробників у компанії чи конкретному проекті. Особливо, якщо компанія розміром більше 10. Чим більше компанія, тим більша потреба. Я знаю, що багато людей не погоджуються, але я бачив проекти, які їх не мають, і код виглядає як тотальна катастрофа. Справжня проблема, що …

9
Як ви знайшли, вдосконалили та підтримували свій стиль кодування?
Нещодавно я переключався між кількома проектами та середовищами розробки. Очікування стилю кодування у кожного різні. Тепер моє запитання - це три частини, перша, з цікавості: Як ви визначили та знайшли свій стиль кодування? Як ви продовжуєте її збільшувати та вдосконалювати? Як ви її підтримуєте? (З розумових записок, зберігання документа, використання …

4
C ++ Кращий метод роботи з реалізацією для великих шаблонів
Зазвичай при оголошенні класу C ++ найкраще застосовувати лише декларацію у файлі заголовка та розміщувати реалізацію у вихідному файлі. Однак, схоже, що ця модель дизайну не працює для шаблонових класів. Якщо ви шукаєте в Інтернеті, існує 2 думки щодо найкращого способу управління шаблонами класів: 1. Вся заява та реалізація в …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.