Як Швидко Промігрувати Ваш Проект з Python 2 на Python 3? Основні Відмінності

Як Швидко Промігрувати Ваш Проект з Python 2 на Python 3? Основні Відмінності

У січні 2020 року офіційно завершилась підтримка старої мажорної версії Python 2.

Будь який ваш новий проект варто починати уже на новій версії мови Python, а саме на версії 3.

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

В даній статті я наведу перелік основних відмінностей даних версій мови.

Мова піде більше про синтаксичні відмінності і базові концептуальні речі і менше про зовнішні бібліотеки, які перестали працювати на новому Python 3.

То ж, що нам приготував Python 3?
(більше…)

Як оптимально працювати з базою даних та Django моделями?

Як оптимально працювати з базою даних та Django моделями?

В черговій статті серії про кращі практики програмування з Django розглянемо роботу з базою даних та Django моделями. Поділюсь досвідом нашої команди та розкажу про:

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

Якщо ви створюєте веб-аплікації із  Django фреймворком, тоді дана стаття буде для вас ‘must to read’…

(більше…)

Налаштування Django проекту

Налаштування Django проекту

В даній статті серії “Кращі практики розробки з Django” розкажу про власні практики із налаштування Django проекту. Тобто будемо говорити про модуль settings.py, який живе в корені проекту.

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

Саме тому пропоную вашій увазі кілька рекомендацій щодо покращення структури налаштувань Django проекту. А поговоримо в даній статті про:

  • основні принципи налаштувань;
  • множинні файли settings.py під різні середовища;
  • кілька файлів для опису залежностей проекту requirements.txt;
  • шляхи у модулі налаштувань.

Якщо ви розробляєте веб-сайти на Django фреймворку, тоді, впевнений, дана стаття буде вам корисною. Більшість практик ми в своїй команді запозичили від інших розробників в Django спільності, а також з книги “Two Scoops of Django”.

(більше…)

Як стати Python веб розробником з нуля? Покрокова інструкція

Як стати Python веб розробником з нуля? Покрокова інструкція

Знаєте які статті найчастіше читають, лайкають і поширюють? Ті, які є максимально конкретними, практичними і надають наступні кроки до дій в тій чи іншій темі. Моя покрокова інструкція як отримати роботу програміста з нуля, а також детальний пост про те як статити веб-розробником є “бестселерами” даного блогу.

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

А почнемо із короткого огляду, чому саме варто звернути увагу на Python та веб-розробку…

(більше…)

Що таке тести, коли їх писати, як та для чого?

Що таке тести, коли їх писати, як та для чого?

Тема автоматизованих тестів – це ще одна популярна тема, про яку часто питають початківці. Найчастіше запитують:

  • що таке ці тести і якими вони бувають?
  • коли потрібно ними займатись в проекті?
  • що таке TDD, Continuous Integration, Test Coverage?
  • як зробити тести максимально корисними і ефективними?

У своїй книзі “Веб-розробка з Python та Django для Початківців” я присвятив цілу главу автоматизованим тестам. В даній главі є доволі об’ємна теоретична частина, яка вводить студента у курс справи і відповідає на усі вищенаведені запитання.

Тому у сьогоднішній статті я просто викладаю теоретичний вступ 14-ї глави своєї книги…

(більше…)

Чи потрібна програмісту вища освіта?

Чи потрібна програмісту вища освіта?

Давніше я уже писав про варіанти освоєння професії програміста. Одним із таких варіантів є ВУЗ. Навчання у ньому є з однієї сторони довгим і часто невиправданим, але з іншої сторони може дати надзвичайно хорошу базу і розуміння професії.

У цій статті я розбирав спеціалізації у ВУЗах для програмістьких напрямків. А в даному пості хочу поділитись своїми думками і позицією щодо того чи потрібна вища освіта програмісту взагалі. Дане питання я неодноразово отримував від читачів блогу. Ось останнє із них:

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

Бачите, що питання стоїть в тому чи потрібна вища освіта саме для працевлаштування. Я ж розгляну ще і варіант чи потрібна освіта для отримання знань. Почнемо із другого варіанту:

(більше…)

У яких випадках мова програмування Python є правильним вибором?

У яких випадках мова програмування Python є правильним вибором?

Першою мовою програмування, яку я спробував була мова Паскаль. Її нам в універі (на мех-маті в ЛНУ ім. І. Франка) викладали, на скільки пам’ятаю, один симестр. Далі, на останньому курсі університету мені порекомендували спробувати освоїти мову Python, щоб націлитись на свою першу роботу в якості веб-програміста. Пізніше у своїй програмерській кар’єрі я також непогано освоїв Javascript i PHP. Також “бавився” із Ruby і вивчав C++ (чисто по книжці із виконанням цікавим домашок).

Наша команда володіє кількома різними мовами програмування і розробляє веб-сайти використовуючи мінімум 3 різних фреймворка та CMS на різних мовах. Ми вже давно зрозуміли, що не існує єдиної мови, інструменту для всіх проектів. Класно володіти арсеналом інструментів та підбирати той, який допоможе найшвидше та найякісніше вирішити задачу. Адже ніхто не буде нарізати хліб сокирою чи колоти дрова ножем 😉

Тим не менше улюбленою мовою програмування в мене особисто була і залишається мова програмування Python. Її простий синтаксис, швидшість написання програм, великий набір бібліотек, відкритий код та широкий спектр застосування – все це ставить її на першу позицію в моєму особистому рейтингу.

Незважаючи на це я чудово розумію, що дана мова також має свої мінуси. Є задачі і сфери, де на Python можна успішно проскакати до фінішу, а є речі, які краще на ній не писати.

В сьогоднішній статті поділюсь власним досвідом і думками щодо тих задач, які варто розв’язувати з допомогою мови Python і наведу приклади, коли Python краще уникати. Думаю в наступних статтях я також розкажу про застосування інших мов, якими володію. А сьогодні розберемось із моїм улюбленцем – Python…

(більше…)

Що потрібно вміти, щоб бути веб-розробником і де цього навчитись?

Що потрібно вміти, щоб бути веб-розробником і де цього навчитись?

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

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

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

(більше…)

Скільки потрібно часу, щоб стати програмістом?

Скільки потрібно часу, щоб стати програмістом?

Коли я почав продавати свою книгу, запустив перших студентів у закриту групу підтримки, почалась класна тусовка. Усі весело йшли по перших главах книги, виконували домашки, мотивація і позитивний настрій зашкалювали! І так тривало до глави 5-ї. Далі, коли пішло саме “м’ясо” веб-розробки, стало доволі “глухо” в групі, маса запитань, і, врешті-решт, трохи скарг на те, що приходиться по кілька разів перечитувати глави. Що вже тиждень сиджу над главою і не йде. І тому подібне…

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

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

(більше…)

Чи потрібно програмісту знати математику, яку та на скільки добре?

Чи потрібно програмісту знати математику, яку та на скільки добре?

Сьогодні розглянемо чергове досить популярне запитання від людей, які думають переходити в програмісти: “Чи потрібно програмісту знати математику?”. Останнім часом дане питання зачастило у моїй емейл скриньці та серед приватних повідомлень в соцмережах, тому саме час розширено дати відповідь.

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

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

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

То ж, почнемо із розбору термінів…