Я не пишу великих проектів. Я не підтримую величезну базу даних або не маю справу з мільйонами рядків коду.
Мій код - це в основному матеріал "сценаріїв" - речі для перевірки математичних функцій або для імітації чогось - "наукового програмування". Найдовші програми, над якими я працював до цього моменту, - це кілька сотень рядків коду, а більшість програм, над якими я працюю, - близько 150.
Мій код також лайно. Я зрозумів це на днях, коли я намагався знайти файл, про який я писав деякий час тому, але я, мабуть, перезаписав і що я не використовую контроль версій, що, мабуть, змушує велику кількість вас нудитись в агонії від моєї дурості.
Стиль мого коду перекручений і наповнений застарілими коментарями, вказуючи альтернативні способи зробити щось або скопіювати рядок коду. Хоча імена змінних завжди починаються дуже приємно і описово, тому що я додаю або змінюю речі відповідно до, наприклад, щось нове, що хтось хоче тестувати, код накладається зверху і переписується, і тому, що я відчуваю, що ця річ повинна бути швидко перевірена зараз, коли я у мене є рамка, я починаю використовувати лайливі імена змінних, і файл переходить в горщик.
У проекті, над яким я зараз працюю, я перебуваю у фазі, коли все це повертається, щоб мене кусати сильно. Але проблема полягає в тому, що (крім використання контролю версій і створення нового файлу для кожної нової ітерації та запису все це в текстовий файл десь, що, ймовірно, допоможе кардинально) Я не знаю, як продовжувати вдосконалення мій фактичний стиль кодування.
Чи потрібно тестування одиниць для написання менших фрагментів коду? Як щодо OOP? Які підходи корисні для швидкого написання хорошого, чистого коду при виконанні "наукового програмування" на відміну від роботи над великими проектами?
Я задаю ці питання, тому що часто саме програмування не є надто складним. Це я більше про математику чи науку, яку я тестую або досліджую за допомогою програмування. Наприклад, чи потрібен клас, коли дві змінні та функція, можливо, могли б піклуватися про нього? (Враховуйте, що це також загалом ситуації, коли швидкість програми воліє бути швидшою - коли ви виконуєте 25 000 000+ кроків часу моделювання, ви хочете, щоб це було.)
Можливо, це занадто широко, і якщо так, я вибачаюся, але дивлячись на книги з програмування, вони, здається, часто звертаються до великих проектів. Мій код не потребує OOP, і він вже досить проклятий, тому він не схожий на "о, але файл буде зменшено на тисячу рядків, якщо ми це зробимо!" Хочеться знати, як «почати все з початку» та чітко програмувати ці менші, швидші проекти.
Я був би радий надати більш конкретні деталі, але чим більш загальна порада, тим корисніше, я думаю. Я програмую в Python 3.
Хтось запропонував дублікат. Дозвольте зрозуміти, що я не говорю про відверте ігнорування стандартних стандартів програмування. Зрозуміло, є причина, що ці стандарти існують. Але з іншого боку, чи справді є сенс писати код, який є, наприклад, OOP, коли деякі стандартні речі можна було б зробити, було б набагато швидше написати, і був би аналогічний рівень читабельності через стислість програма?
Є винятки. Далі, мабуть, існують стандарти наукового програмування, що виходять за рамки простих стандартів. Я також про це запитую. Йдеться не про те, чи слід ігнорувати нормальні стандарти кодування під час написання наукового коду, це про написання чистого наукового коду!
Оновлення
Я просто подумав, що я додам "не зовсім тиждень пізніше" оновлення. Всі ваші поради були надзвичайно корисними. Зараз я використовую контроль версій - git, з git kraken для графічного інтерфейсу. Це дуже простий у використанні і драматично очистив мої файли - більше не потрібно старі файли, що стирчать, або старі версії коменту, коментовані "про всяк випадок".
Я також встановив pylint і запустив його на весь свій код. Один файл спочатку отримав негативну оцінку; Я навіть не впевнений, як це було можливо. Головний мій файл розпочався з оцінки ~ 1,83 / 10 і тепер становить ~ 9,1 / 10. Весь код тепер досить добре відповідає стандартам. Я також наткнувся на це власними очима, оновивши імена змінних, що пішли ... е-е-м ... помилково, і шукав розділи для рефактора.
Зокрема, я задав нещодавнє запитання на цьому веб-сайті про рефакторинг однієї з моїх основних функцій, і тепер він набагато чистіший і набагато коротший: замість довгої, роздутої, якщо / ще заповненої функції, вона зараз менше половини розмір і набагато простіше зрозуміти, що відбувається.
Наступним моїм кроком є впровадження "тестування одиниць". Під яким я маю на увазі файл, який я можу запустити в своєму головному файлі, який розглядає всі функції в ньому за допомогою тверджень про ствердження та спробувати / excepts, що, мабуть, не найкращий спосіб зробити це, і виходить багато дублікату коду, але я продовжую читати і спробую розібратися, як це зробити краще.
Я також значно оновив документацію, про яку я вже писав, і додав додаткові файли, такі як таблиця Excel, документація та пов'язаний папір до сховища github. Це ніби зараз справжній проект програмування.
Отже ... я думаю, це все, щоб сказати: дякую .