Чи характерні погані практики програмування в галузі програмного забезпечення? [зачинено]


140

Я тільки почав свою першу роботу як розробник програмного забезпечення понад місяць тому. Все, що я дізнався про OOP, SOLID , DRY , YAGNI, шаблони дизайну, SRP тощо, можна викинути у вікно.

Вони використовують C # .NET Webforms і роблять майже все, що знаходиться в кодексі позаду, із дуже малою кількістю зовнішніх класів, які точно не називаються об'єктами. Вони використовують користувацькі елементи керування та використовують їх повторно. Про єдині використовувані об'єкти - це Entity Framework . Вони повторно використовують Код Задуми для кожного клієнта. У них є методи, які довжиною 400 рядків роблять всі види матеріалів. Для нових клієнтів вони беруть aspx та aspx.cs і викреслюють код клієнта і починають додавати новий код, специфічний для клієнта.

Їх першим приводом було б додавання додаткового обслуговування, а більше коду - це більше обслуговування. Це невеликий магазин з трьох розробників, включаючи мене. Один розробник має понад 30-річний досвід, а інший - 20+ років досвіду. Один раніше був розробником ігор, а інший завжди працював у C та C ++.

Наскільки це поширене в індустрії програмного забезпечення? Як я можу забезпечити, щоб я залишався на версії OOP та пов'язаних із цим принципів? Я практикую у вільний час і відчуваю, що мені справді потрібно працювати над більш досвідченим розробником, щоб покращитися в OOP.


Я відкрив обговорення заголовка в чаті: chat.stackexchange.com/transcript/message/40126879#40126879 Будь ласка, приєднуйтесь до мене.
декор

1
Коментарі не для розширеного обговорення; ця розмова переміщена до чату .
Світовий інженер

Відповіді:


263
  1. Принципи, які ви цитували у своєму питанні, - це саме такі ... принципи. Вони не є мандатами, законами чи розпорядженнями.
  2. Хоча люди, які придумали ці принципи, дуже розумні, вони не є абсолютною владою. Вони просто люди, що пропонують свої уявлення та настанови.
  3. Немає «правильного» способу програмування. Про це свідчить той факт, що "прийнятий" спосіб, яким ми це робимо, змінився і продовжує змінюватися, радикально з часом.
  4. Доставка товару часто може мати перевагу над тим, як робити це "правильним" способом. Це така поширена практика, що вона має назву: Технічний борг.
  5. Деякі архітектури програмного забезпечення, що мають загальне використання, не є ідеальними. Найкращі практики розвиваються від великих монолітних застосувань до зв'язаних колекцій модулів.

  6. Контекст важливий. Багато архітектурних принципів доводить свою цінність лише тоді, коли ви працюєте з великими програмами або певними областями. Наприклад, успадкування в основному корисно для ієрархій інтерфейсу користувача та інших структур, які отримують користь від глибоко вкладених, щільно сполучених механізмів.

Тож як ви слідуєте за "правильним" шляхом, принциповим шляхом, щоб ви могли вийти з пустелі?

  1. Вивчіть доцільність, а не правильність. "Правильний" спосіб зробити що-небудь у розробці програмного забезпечення - це той, який найбільш ефективно відповідає вашим конкретним вимогам.
  2. Вивчіть компроміси. Все в розробці програмного забезпечення - це компроміс. Хочете скористатися більшою швидкістю або зменшенням пам'яті? Ви хочете дуже експресивну мову програмування з малою кількістю практикуючих чи менш виразну мову, яку знають багато розробників?
  3. Вивчайте позачасовість. Деякі принципи витримали випробування часом і завжди будуть актуальними. Системи типу універсальні. Функції першого класу універсальні. Структури даних є універсальними.

  4. Навчіться прагматизму. Практичність - це важливо. Математична чистота, архітектура кришталевих соборів та принципи вежі із слонової кістки є марними, якщо ви не можете їх доставити.

  5. Будь майстром, а не завзятим. Найкращі розробники програмного забезпечення - це ті, хто знає правила, а потім знає, як їх порушити, коли це має сенс зробити. Це ті, хто все ще знає, як вирішити проблеми і думати про себе. Вони використовують принципи, щоб інформувати і направляти свій вибір, а не диктувати їх.
  6. Написати код. Багато цього. Принципи розробки програмного забезпечення - це передчасна оптимізація, поки ви не написали багато коду і не виробили інстинкт, як правильно їх застосовувати.

1
Коментарі не для розширеного обговорення; ця розмова переміщена до чату .
янніс

Де я можу систематично отримати ці уявлення про те, що я не маю ніяких вказівок?
Ooker

4
Не просто розумійте, що таке найкраща практика, а які відчутні переваги найкращої практики. Це дозволяє з'єднати найкращу практику з доцільністю, а також забезпечує ефективність у застосуванні практики, щоб мати найкращий ефект. Якщо ви просто зазначаєте, що найкраща практика здійснює "розмежування проблем", то ви, ймовірно, не можете бути впевнені, що ви перерізаєте правильний спосіб скористатися перевагами цієї практики.
AaronLS

51

Це не рідкість. Слід усвідомити, що галузь програмного забезпечення неймовірно різноманітна. Деякі компанії передують. Провідні університети та інноваційні програми програмного забезпечення (навіть деякі лабораторії у великих!), А також благословенні особи або групи, як банда з чотирьох, аналізують проблеми, що виникають із загальними способами робити речі та винаходити нові мови, машини, інструменти та зразки. Нові компанії, часто спін-оф або відщеплення, намагаються використовувати їх комерційно, а іноді мають надзвичайний успіх. Подумайте Facebook або Google.

Але програмне забезпечення використовується майже скрізь сьогодні, можливо, переважно в компаніях, які насправді не є компаніями, що займаються програмним забезпеченням. Я працював здебільшого в транспортній галузі (автомобільній та залізничній), і є змішаний мішок досвіду. Але жодне з них не було десь близько до "передового краю". Іноді їх не може бути; Програмне забезпечення для безпеки залежить від добре перевірених інструментів (зараз ми використовуємо перевірений компілятор C ++ з 1990-х років). Іноді вони не мають потрібних людей. Часто програмне забезпечення розробляється інженерами в інших галузях, які просто траплялися в розробку програмного забезпечення у своїй компанії, коли програмне забезпечення набувало все більшого значення. Не можна сподіватися, що вони знатимуть або використовувати принципи інженерії програмного забезпечення.

Інша річ, яку слід врахувати - це те, що важливо для інженера в реальному світі. Часто завдання, яке стоїть перед нами, - це зовсім не буквальна наука. Проблеми з хлібним маслом у непрограмних компаніях можна вирішити скромними програмними засобами. Те, що робить корисним, можливо, навіть хорошим інженером програмного забезпечення - це частково те, що робить хорошого загального інженера: будьте надійними; організувати та документувати свою роботу відповідально; бути кооперативним; робити хороші кошториси витрат і часу (обгрунтованість кошторису важливіша за фактичну вартість і час!); зрозуміти, що можна, а що не можна робити. Тут очевидно відсутні "знання та використання найсучасніших інструментів та процедур". Ви описуєте компанію, яка створила набір інструментів і процес, який працює для них. Вони, ймовірно, ніколи не витворять нічого сексуального чи надзвичайного, але вони задовольняють потреби клієнтів досить добре, щоб отримати стабільний потік достатнього доходу. Це може бути визначення техніки ;-).

Так так: те, що ви дізнаєтесь в університеті, насправді не є загальним у більшості галузей.


Я хочу додати втіху або більш прискіпливу ноту. Те, що ви дізналися, не повинно викидатися з вікна. Ви можете застосовувати кращі принципи у своїй щоденній роботі, коли це не порушує справи. Можливо, з’явиться вікно можливостей представити новий інструмент або модель дизайну. Шанси найкращі, коли старий спосіб робити речі неприємний для колег, або якщо вони стикаються з проблемами управління складністю або технічним обслуговуванням (дві найвиразніші проблеми, вирішені інноваціями). Будьте готові запропонувати поліпшення, коли є можливість. Бути позитивно впливати та поступово вдосконалювати методи та інструменти; поширювати знання там, де це цінується.


2
@nocomprende: no entiendo ... Ви маєте на увазі, що загальне є більш поширеним, а надзвичайне, на жаль, надзвичайним? Або що спільне не надзвичайно добре? Ну так.
Пітер А. Шнайдер

3
"Те, що ти дізнаєшся в університеті, насправді не часто зустрічається у цій галузі" - Це, здається, є ключовим ...
Брайан Ноблеуч,

1
Я щойно мав на увазі, що в галузі програмного забезпечення є люди з усім спектром людських здібностей, повним спектром знань, компанії мають повний спектр підготовленості, повний спектр різноманітних проблем тощо, як у всьому світі. Програмне забезпечення не відрізняється цими способами, ніж інші поля. Проблема могла бути поставлена ​​на будь-якому веб-сайті SE.

1
"Програмне забезпечення, що стосується безпеки, залежить від добре перевірених інструментів (зараз ми використовуємо валідований компілятор C ++ з 1990-х років)" для мене звучить досить актуально!
Говеркуч

1
@ PeterA.Schneider це був нерозумний жарт про те, наскільки передовим є насправді перевірити свої інструменти. ;)
Говеркуч

16

Вони використовують веб-форми C # .Net і роблять майже все, що знаходиться в коді позаду, із дуже маленькими зовнішніми класами

Там є ваше пояснення. Якщо ви не знаєте, нестандартний код веб-форм є майже полярною протилежністю OOP, SOLID, DRY, YAGNI, Шаблони дизайну, SRP тощо. Навіть офіційні приклади від Microsoft за кілька років тому змусив би тебе сьогодні скупитися.

Веб-форми підштовхують себе до процесуального потоку з деякими фальшивими "подіями", спровокованими контрольними клацаннями тощо. Деви, які витратили багато часу, роблячи веб-форми, також, як правило, не хочуть відходити від нього, ймовірно, тому, що вони запали так багато часу, щоб вивчити життєвий цикл сторінки та як робити динамічно надані елементи керування, що вони ненавидять кидати ці знання зараз перед новими / кращими методами. Непритомна версія затопленої помилки. Ці розробники витратили цілі роки, навчаючись, як розгортати веб-форми, і тепер не буде легко відійти від цієї експертизи, звідси і їхня розмова про "технічний" час.

І це досить часто в просторі .NET Web Forms, btw.


6
Приємно звернутися до технічного стека згаданого питання
jasonoriordan,

5
Хто хоче переглядати 20 класів, які гніздяться та дзвонять один одному, аби з’ясувати, що станеться, коли ви поставите чи зніміть прапорець? Тільки божевільні люди, або люди, які вважають професорів коледжу, - це боги.
developerwjk

1
Насправді, коли було створено WebForm, стандартні галузеві практики були різними (або взагалі відсутні), і вже існуючі додатки ніколи не отримують рефакторингу, коли «починається прийняття нового крутого способу робити справи». Ось чому ви бачите багато коду WebForm, переповненого безладом. Принципи програмування відхиляються від технологічного стеку, який ви використовуєте, тому їх можна застосовувати навіть у WebForms, Cobol, Assembly, будь-якому іншому.
BgrWorker

1
Так, це правда. Скільки Мб склав ваш ViewState? Як не дивно, я думаю, що керування на серверній основі прагнуло заохочувати бізнес-логіку до інтерфейсу користувача. Тим не менш, програміст був дуже винен у тому, що він охоче просувався разом з вантажно-культовим лаєм asp.net. Таким чином: стільки подій, що бізнес-об’єкти не змогли дійти до правильного стану. Автобус. об'єкти не могли передзвонити один одному через з'єднання інтерфейсу. Потім: ой, дивись Мо! Ми можемо працювати "відключені!" нюк, нюк, нюк. Реальний обсяг даних призвів до того, що ваш додаток зупинився, оскільки класи asp.net прикинулися двигуном бази даних. Але ми рятували зв’язки від зношування!
radarbob

1
Все це лукавить правда ... серце щиро правдиве. Я бачив так багато того, що описано в цій публікації, що стосується додатків WebForms, це змушує мене відчувати, що ці програми трохи кращі, ніж деякі сценарії PHP, кинуті разом серед вищого школяра на енергетичні напої - і це вважалося корпоративним програмним забезпеченням!
Грег Бургхардт

12

Наскільки це поширене в індустрії програмного забезпечення?

Дуже часто. Приблизно така ж звичайність, що сантехнік знищує сантехніку, столяра, що доставляє мотлох, або дешевого кравця, який робить непридатний костюм. Тобто все це по-людськи.

Це є вагомою причиною, чому це трапляється: людям, які насправді не навчені (або не в ентузіазмі), доводиться щось реалізовувати під тиском.

Це не проблема тих людей, в першу чергу, але, як правило, структур навколо розробки програмного забезпечення в цій компанії. Наприклад, компанія може мати купу інтернів, які розробляють своє внутрішнє програмне забезпечення; навіть якщо ці стажисти яскраві та обізнані, вони будуть там лише кілька тижнів чи місяців, а право власності буде часто змінюватися.

Або якась людина, яка чудово підходить до домену, але не програміст, може зламати разом додаток VBA тощо, тому що на початку це здається досить простим.

Або добре зроблений додаток закінчується у фазі обслуговування, всі хороші розробники рухаються далі, і далі його розробляють мало хто (найгірший: один), який про це мало знає, у кого немає документації тощо.

Як я можу забезпечити, щоб я залишався на версії OOP та пов'язаних із цим принципів? Я практикую у вільний час і відчуваю, що мені справді потрібно працювати над більш досвідченим розробником, щоб покращитися в OOP.

Є два можливі відповіді:

  • Або: обговоріть це з вашим начальником і переконайтеся, що ви потрапляєте в чисті проекти. Якщо немає можливості, знайдіть нового начальника.
  • Або: візьміть на себе відповідальність за це. Це означає робити це самостійно - у вільний час або, якщо можете, в компанії, але керований самим собою (навряд чи).

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

Наприклад, для деяких людей це абсолютно можливо і дуже весело, наприклад, копати на новій мові, як Рубі, вивчати не тільки синтаксис, а й розкривати спеціальні аспекти OO цієї мови, і дійсно пірнати глибоко. Все у вільний час, не маючи зв’язку зі своєю роботою. Це буде просто хобі, але, якщо ви є кваліфікованим професіоналом, воно може бути настільки ж ефективним (чи більше того), як сидіти поруч із яким-небудь провідним розробником і намагатися слідкувати за тим, що вони роблять. Тоді це буде суто для вашого особистого розвитку та вашої власної розваги. Якщо вам це не цікаво, або якщо ви виявите, що просто не можете досягти розуміння, то почухайте це та поверніться до першої відповіді.

Той головний розробник, який навчає вас, цілком ймовірно, дізнався, що саме таким чином ...


2
Отже, наймайте тільки кваліфікованих, повністю навчених та захоплених людей, щоб робити ... ну, що завгодно. Чому ми цього не робимо? Постає питання: як повинні жити не кваліфіковані, не добре навчені та не ентузіастичні люди? Чарльз Діккенс повідомив відповідь на це: не дуже добре, якщо взагалі.

@nocomprende, ви проектуєте свою думку, я не мав на увазі те, що ви писали жодним чином. Я пояснюю причини того, що зауважила ОП.
AnoE

Я просто продовжую думати про питання Курта Воннегута з God Bless You містер рожеву воду : «Те , що в пеклі люди за

2
@nocomprende, якщо я кажу про "непідготовлену людину", я не кажу, що люди дурні, я кажу, що з будь-якої причини людина зробив роботу, яка не була добре підготовлена ​​для цієї роботи. Виною цілком може бути його керівник у тому, що він дав йому неправильну роботу; або з обставинами (тобто, коли колега захворіє), або з будь-яких незрозумілих причин ви могли собі уявити. Це не має нічого спільного з припущенням, що ми повинні наймати лише великих людей. Якщо мені доведеться виправити сантехніку в своєму будинку, ти можеш бути впевнений, що я зроблю безлад, хоча я чудовий у будь-якому іншому, що можу зробити.
AnoE

1
Існує стара думка з антропології, що рабські товариства, як стародавні єгиптяни, набагато менше людей, ніж товариства, які допомагають людям процвітати. Ось чому капіталізм був кращим за середньовічну культуру. В ідеалі кожен би зміг домогтися розквіту, і тоді ми отримали б повну користь кожної людини, і кожна людина отримала б повну користь суспільства. Капіталізм недостатньо хороший, щоб це забезпечити, тому нам потрібно щось більше. Те, що є люди, які виконують менше оптимальної роботи, є доказом, бо якби капіталізм був ідеальним, цього б не сталося.

11

Я думаю, що в Іспанії це постійне, оскільки коли розробник проходить багато років у компанії, він (або вона) зазвичай просувається до більшої кількості галузей управління, таких як аналіз та управління проектами. В результаті не проводиться експертна перевірка, і код зазвичай пишуть менш досвідчені люди.

Невдачі цих досвідчених людей ніколи не виправляються: натомість, їх головна увага - виконати роботу. Як результат, у коді накопичується все більше неправильних практик.

Врешті-решт, якась розумна дупа каже, що найкращим "рішенням" є перехід на нову технологію, яка генеруватиме чистіший і більш обслуговуваний код, створюючи нову програму. Наче технологія сама по собі могла це зробити.

Знову ж таки, недосвідчені програмісти працюють над новою технологією, ніхто не переглядає код і коло знову закривається .... назавжди і назавжди ....


16
Нічого спільного з Іспанією. Це принцип Петра - люди висуваються з позицій, де добре діють, поки вони не досягнуть місця, де вони цього не роблять, і застрягнуть там, бо немає для чого сприяти.
Ян Худек

3
Існує також той факт, що індустрія програмного забезпечення все ще зростає, тому людей з порівняно невеликим досвідом є більш численними. І що у багатьох компаній взагалі немає досвідчених людей, оскільки вони є новими і занадто дешевими, щоб найняти ветерана, думаючи, що купка свіжих коледжів зробить це - вони не стануть.
Ян Худек

1
@JanHudec Я не знаю чоловіка, я відчуваю, що я хотів би набагато краще мати молодняк з коледжу, ніж один із тих людей, які мають 20-річний досвід, про який розповідає оригінальний афіша
Майкі Маус

9
@MikeyMouse, правда, є багато людей, які не мають 20-річного досвіду, а швидше 20 разів за 1 рік досвіду. І вони заклинають справді великі неприємності.
Ян Худек

".. петер принцип .."; особливо в урядовій установі, де це більш свідоме явище. Я називаю це їхньою програмою управління інбридингом. Хоча часто існує рівновага хороших / поганих кодерів, жах є, коли MIP знову застосовує некомпетентність. Роки пізніше, коли ті певні молодші. програмісти - це тепер начальники відділів, які, у свою чергу, не просунуть нікого кращого за них, хороші люди та ідеї залишають або виганяють. Цех став кошиком випадків некомпетентності; застряг у «залишковому режимі випромінювання фонового видуму» програмування на мейнфреймах у культурі йти разом, щоб уживатися.
radarbob

7

Деякі з "найкращих практик", які ви вивчаєте в школі, не є практичними та не рентабельними для реальних проектів. Одна з найбільших змін, яку я помітив, була у форматуванні та коментарях. Більшість моїх професорів наголосили на важливості великого документування вашого коду, але в реальному світі хороший код часто (не завжди!) Пояснює себе, і що ще важливіше, що багато начальників не хочуть платити за те, щоб витратити зайвий час на написання. коментарі.

Іноді ви побачите програмістів, які натискають на час, використовуючи ярлики та анти-шаблони, для яких потрібна менша плита котла, ніж якісні рішення.

Однак одна з найбільших проблем, яку я помітив у багатьох колективах та проектах, - це небажання вчитися новому. Багато хто з старших програмістів, з якими я спілкувався, розпочали свою кар'єру в «дикому заході», в інженерії програмного забезпечення, коли починалася кваліфікація і закінчувалася готовністю писати код. Вони часто впадали в зовсім інші сфери, і, коли з'явилася можливість, в програмуванні було мало або взагалі не було офіційної освіти (наприклад, їх роботодавець не мав програміста і потрібен хтось вчитися для створення власного програмного забезпечення). Деякі з цих програмістів-самоучок зі старої школи ніколи не докладають зусиль, щоб засвоїти сучасні практики кодування, і продовжують кодувати приблизно будь-який стиль, про який вони дізналися десятиліття тому. Коли вони стають відповідальними за нові проекти через стаж, вони, як правило, стримують проекти і завдають шкоди загальній якості коду.

Звичайно, вищезазначене не стосується всіх старших програмістів, і кодери нового покоління можуть бути так само винними. Я працював з багатьма молодшими програмістами, які зібрали декілька інструментів та бібліотек, що залишилися в коледжі, а потім повністю припинили навчання. Вони завантажують IDE або бібліотеку один раз і ніколи не оновлюватимуть її, якщо їх компанія не вимагає (іноді можна здогадатися, який рік закінчив програміст, виходячи зі застарілих його бібліотек). Вони не йдуть в ногу з новими можливостями у своїй мові, що вибирають, і ніколи не вивчають нові мови. Вони не вивчають нових стратегій програмування і можуть неправильно використовувати шаблони або парадигми, оскільки не знають більш підходящих альтернатив (о MVC, як сильно вас зловживають). З плином часу їх робочий процес стає все більш застарілим, і вони стають більше зобов'язанням, ніж активом.

Підводячи підсумок, дві з найбільших причин безладного кодового бази - це спішні терміни та програмісти із застарілими або неповними знаннями. На жаль, відповідальність за обидва питання може сильно покласти на начальника чи керівника загальноосвітньої організації, який повинен переконатися, що строки є реалістичними та щоби персонал був в курсі своїх знань та навичок. Якщо начальник нічого не знає про добру практику програмування, найкраще, що ви можете зробити, це спробувати запропонувати зміни та сподіватися, що вони відкриті для пропозицій. На жаль, вони можуть схильні довіряти слову старшого програміста, який не розуміє ООП і любить писати 10 000 лінійних класів.


19
Мені справді не подобається цей міф про те, що хороший код не пояснює себе, а коментарі застаріли. У кращому випадку хороший код підкаже вам, що саме відбувається. Однак він не вказує на те, чому він щось робить або навіть якщо це правильно. Прокоментуйте свій код, щоб його майбутній супровідник не повинен здогадуватися, чому ви створюєте foo, але не смужку .
користувач369450

13
Я не згоден з вашим першим пунктом. Документування вашого коду (наприклад, із коментарями) принаймні так само важливо, як і коли ви були в коледжі. Різниця полягає в тому, що жоден професіонал не коментує, що робиться в рядку - вони документують ЧОМУ. Що відбувається, можна прочитати з вихідного коду. Чому часто результат декількох хвилин до години мислення.
Арахо

1
Є дуже мало причин писати, чому код щось робить, і більшість випадків це можна пояснити кращою назвою методу. Поміркуймо, більшість кодів, які ми зазвичай пишемо, досить прості, щоб не заслуговувати на коментарі.
BgrWorker

1
Як це повторюється? Код пишеться один раз і читається багато, багато разів. Пишіть коментарі, і ви заощадите час у довгостроковій перспективі. @ BgrWorker, я думаю, залежить від людини. Я регулярно пишу алгоритми і думаю, що вони заслуговують на коментарі (останній час є символічним математичним аналізатором ... безумовно потрібні коментарі)
person27

1
Я думаю, що одиничні тести набагато цінніші за коментарі. Занадто часто я бачив ситуації, коли код оновлювався і коментарі більше не застосовуються. У цьому випадку застарілі коментарі ускладнюють з'ясування того, що відбувається. Експертні тести документують наміри оригінального програміста, і якщо ваша система CI запускає тести на одиницю при реєстрації, ви зобов'язані їх підтримувати.
bikeman868

2

Деякі з поганих практик програмування є наслідком роботи з застарілим програмним забезпеченням, яке вперше розпочало розробку десятиліття тому. Якщо є величезна складна програма, переписати все може не варіант. Це може бути навіть дуже важко зрозуміти все, що насправді робить код. Найкращим варіантом може бути просто скопіювати те, що працює, а також намагатися інтегрувати кращі практики програмування, якщо ви можете це зробити, нічого не порушуючи.


Збій, як правило, також не є варіантом.

1

Я думаю, що важливо не просто говорити правильно від неправильного, а знати причини, що стоять за кожним правильним і неправильним. Коли ви знаєте причини, ви можете передбачити наслідки. Навіщо використовувати той чи інший принцип не тому, що це було описано в книзі, а тому, що ми знаємо, як це допомагає і що саме відбувається, якщо ми його порушимо. Якщо ви знаєте, що станеться, коли ви можете зважити плюси і мінуси і прийняти рішення. Це також допоможе вам кожен раз аргументувати свою позицію. SOLID та OOP також можуть зменшити технічне обслуговування, якщо використовувати їх добре.

Твердий, якщо використовується занадто догматично, призводить до занадто багато класів і методів, що теж не так добре. Не перестарайтеся. Це частково велика проблема наших підручників та навчальних посібників, оскільки вони часто намагаються просувати ідеї без належного обґрунтування. OOP також має свої мінуси. Багато принципів і парадигм суперечать один одному. Вам не потрібно бути на вершині, вам потрібно зробити все розумним, виправданим, елегантним і простим.

Крім того, оскільки це ваша перша робота, швидше за все, ці програмісти не дуже кваліфіковані. Але знову ж таки, їм, мабуть, довіряють не дуже важкі завдання, які можна виконати без особливих навичок та за меншу зарплату менш кваліфікованими дешевшими кодерами. Так працює економіка. Кожне робоче місце різне.

Я розумію, як ви себе почуваєте. Не панікуйте . Вам знадобиться те, що ви знаєте, можливо, не відразу, але це допоможе вам. Можливо, на іншому робочому місці, може, в деяких випадках. Ви маєте час перед собою, щоб піти далі.

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