<
  • Главная
Статьи

Джентльменський набір веб-програміста

  1. Для чого потрібно веб-програмування?
  2. Якою мовою програмувати?
  3. Де програмувати?
  4. За допомогою чого програмувати?
  5. Де запускати в продакшн?
  6. підсумки

Наша стаття публікується сьогодні не випадково. 13 вересня 2018 року - це 256-й день року, День програміста, офіційно затверджений в Росії указом президента . А тому для початку ми вітаємо всіх програмістів з професійним святом і бажаємо їм чистого коду і гідних проектів!

Чому саме 256-й? 256 - це максимальна кількість значень, яку можна виразити за допомогою восьмирозрядного байта. Крім того, це максимальна ціла ступінь числа 2, яка не перевищує кількість днів в році.

Сьогодні, як випливає з назви, ми б хотіли торкнутися таку сферу програмування, як веб, і розглянути 5 питань:

Наша стаття публікується сьогодні не випадково

Для чого потрібно веб-програмування?

Веб-програмування об'єднує в собі широкий спектр завдань - від створення простих або динамічних веб-сторінок до складних інтернет-додатків і веб-сервісів.

З найбільш частих і затребуваних ринком продуктів веб-програмування можна перерахувати наступні:

  • Динамічні веб-сайти - по суті представляють собою комплекс скриптів, які використовують базу даних і шаблони.

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

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

  • Веб-додатки - клієнт-серверні програми, в яких клієнтом виступає веб-браузер, а сервером - веб-сервер. По суті є окремим випадком динамічного веб-сайту, в якому присутня інтерактивність, а не тільки динамічне підвантаження інформації з різних джерел.

    Прикладами веб-додатків можуть служити: браузерні ігри, веб-інтерфейси електронної пошти, інтернет-магазини, вікі-движок і т.п.

  • Веб-сервіси - під ними зазвичай розуміють послуги, що надаються за допомогою Інтернету і розгортаються на серверах додатків.

    Прикладами веб-сервісів можуть бути: пошукові машини, сервіси зберігання файлів і документів, поштові сервіси, агрегатори товарів і послуг та ін.

  • Мобільні додатки - програмне забезпечення, призначене для роботи на смартфонах, планшетах та інших мобільних пристроях.

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

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

Якою мовою програмувати?

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

Але перш варто зупинитися на двох мовах, які не є мовами програмування в традиційному сенсі, без яких, однак, подальше занурення в веб-програмування ризикує обернутися марною тратою часу. Йдеться про CSS і HTML.

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

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

Після освоєння вищеперелічених мов можна приступати і до мов програмування.

  • JavaScript - мультіпарадігменний мову програмування. Підтримує функціональний, об'єктно-орієнтована і імперативний стилі.

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

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

  • Java - сильно типізований об'єктно-орієнтована мова програмування. Програми Java зазвичай можуть працювати на будь-якій платформі за допомогою віртуальної Java-машини, що робить цю мову надзвичайно універсальним в застосуванні. Java використовується такими проектами, як: Amazon, eBay, LinkedIn і іншими.

  • Python - високорівнева мова програмування загального призначення з мінімалістичним синтаксисом. Зокрема використовується для створення масштабованих багатокористувацьких веб-додатків. Використовується в таких сервісах, як: Dropbox, YouTube, Instagram та інших.

  • C # - об'єктно-орієнтована мова програмування, активно просувається Microsoft і дозволяє створювати сайти на платформі .NET Framework .

  • PHP - високорівнева скриптова мова для створення динамічних веб-сайтів. Має досить простий синтаксис, тому почати програмувати на цій мові досить просто навіть новачкам, що не володіє уявленнями про принципи розробки коду.

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

  • C ++ - компільований, статично типізований мова програмування загального призначення. Потужний, з великими бібліотеками. Особливо корисний для високопродуктивних додатків.

  • C - класика, компільований, статично типізований мова програмування загального призначення. Для веб-програміста швидше буде корисний з точки зору більш глибокого розуміння процесів, ніж мати прикладне значення.

  • TypeScript - мова програмування, що позиціонується як розширює можливості JavaScript. По суті є надбудовою над JavaScript і назад сумісний з ним.

  • Ruby - динамічний, рефлективний, що інтерпретується високорівнева мова програмування. У Ruby лаконічний і простий синтаксис і, крім того, всі в ньому є об'єктами, наприклад число «1» - це екземпляр класу Integer. Прикладами використання можуть служити: GitHub, Basecamp, Shopify і інші.

  • Swift - відкритий мультипарадигмальності компільований мова програмування загального призначення. Створено компанією Apple цілеспрямовано для розробки iOS і OS X додатків.

Де програмувати?

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

Однак для веб-розробки існують набори програм, що містять всі необхідні компоненти для установки і запуску веб-сервера прямо у вас на комп'ютері без необхідності реального його придбання на період розробки.

Приклади таких пакетів:

  • Open Server - портативна серверна платформа і програмне середовище під Windows. До складу програмного комплексу входять: Apache, Nginx, MySQL, MariaDB, MongoDB, PostgreSQL, PHP, PHPMyAdmin і багато іншого.

  • XAMPP - кроссплатформенная (Windows, Linux, OS X) збірка веб-сервера Apache, яка містить MariaDB, інтерпретатор скриптів PHP, мова програмування Perl.

За допомогою чого програмувати?

Для написання коду в допомогу веб-програмісту створено безліч інструментів. Звичайно, можна використовувати і звичайні текстові редактори (наприклад, Notepad ++ ), Але з метою максимальної продуктивності професіонали воліють працювати в тій чи іншій інтегрованому середовищі розробки (IDE - integrated development environment), яка включає в себе крім текстового редактора ще і компілятор, інтерпретатор, а також відладчик і засоби автоматизації збирання.

Приклади популярних IDE:

  • Eclipse - платформа для створення модульних кроссплатформенних додатків. Для цієї ІСР характерна наявність безлічі розширень, наприклад для роботи з базами даних, серверами додатків і т.д. Підтримує велику кількість мов програмування, в тому числі PHP, Perl, Python.

  • Komodo IDE - кроссплатформенная комерційне середовище розробки ПО, що містить відладчик і перевірку синтаксису для Perl, Python, PHP і інших мов.

  • PhpStorm - інтегроване середовище розробки на PHP. Підтримуються передові технології веб-розробки, включаючи HTML5, CSS, Sass, SCSS, Less, Stylus, Compass, CoffeeScript, TypeScript, ECMAScript Harmony, шаблони Jade, Zen Coding, Emmet, і, звичайно ж, JavaScript.

  • CodeLobster - умовно-безкоштовна інтегроване середовище розробки додатків для створення веб-додатків на мові PHP, також підтримуються: JavaScript, HTML, XML і CSS.

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

Прикладами таких редакторів можуть бути:

  • SublimeText 3 - багатоплатформовий пропріетарний текстовий редактор. підтримує і має можливість підсвічування синтаксису для багатьох мов програмування.

  • Brackets - багатоплатформовий вільний текстовий редактор. Brackets орієнтований на роботу з HTML, CSS і JavaScript.

  • Atom - продукт від команди GitHub, безкоштовний, багатоплатформовий, з відкритим вихідним кодом.

  • Coda - легкий редактор для OS X і iOS з усіма потрібними функціями.

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

Приклади фреймворків:

  • Yii2 (Акронім від «Yes It Is!», Вимовляється як «Yee» або [ji:], на російській «Йіі») - об'єктно-орієнтована компонентний фреймворк, написаний на PHP і реалізує парадигму MVC ( Model-View-Controller ).

  • Laravel - безкоштовний веб-фреймворк з відкритим кодом, призначений для розробки з використанням архітектурної моделі MVC.

  • Symfony - вільний фреймворк, написаний на PHP, який використовує патерн Model-View-Controller. Symfony пропонує швидку розробку і управління веб-додатками, дозволяє легко вирішувати рутинні завдання веб-програміста. Працює тільки з PHP 5 і вище.

  • CodeIgniter - популярний MVC фреймворк з відкритим вихідним кодом, написаний на мові програмування PHP, для розробки повноцінних веб-систем і додатків.

  • Ruby on Rails - явний лідер фреймворків для Ruby. Є відкритим програмним забезпеченням.

  • Django - фреймворк для веб-додатків на мові Python. Використовується на таких сайтах як Instagram, Disqus, Mozilla та інших.

Де запускати в продакшн?

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

  • Віртуальний сервер (VDS / VPS) - емуляція роботи фізичного сервера, при цьому відсутні конкуренти на ресурси. Ви отримуєте окрему операційну систему, пам'ять, процесорний час і т.д. Це істотно підвищує стабільність роботи, але обходиться трохи дорожче і підходить для випадків навантажених великих проектів.

  • Виділений сервер - окремий фізичний сервер, що надається клієнтові в повне одноосібне користування. Цей варіант підійде для дуже великих проектів, або для тих, кому важливий повний контроль за власною інфраструктурою.

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

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

підсумки

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

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

А які технології і інструменти віддаєте перевагу в веб-програмуванні ви?

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту і натисніть Ctrl + Enter.

Для чого потрібно веб-програмування?
Якою мовою програмувати?
Де програмувати?
За допомогою чого програмувати?
Де запускати в продакшн?
Чому саме 256-й?
Чому ми згадуємо мобільні додатки в розрізі веб-програмування і окремо від веб-додатків?
Якою мовою програмувати?
Де програмувати?
За допомогою чого програмувати?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью