Пример mvc в php. третья статья. модели. элементарные действия с записями

Web-инспектор и инструменты разработчика

В каждом современном браузере есть инструменты для разработчика. Обычно они вылазят, если кликнуть правой кнопкой мыши по странице и выбрать в контекстном меню что-то вроде «Просмотреть элемент».

Инструменты разработчика в браузере незаменимы в фронтенд-разработке — создании того, что видит конечный пользователь. Это самый лучший способ отследить, почему CSS не меняет внешний вид элемента как следует и из-за каких запросов страница медленно загружается. В нём даже можно посмотреть, как сайт выглядит на мобильном экране и как реагирует на нажатия пальцем.

Изучать эти инструменты лучше всего сразу бросаясь в практику: открывайте их и просматривайте разные страницы. Документация для Chrome DevTools, при использовании Chrome, не будет лишней, если интерфейс инструментов покажется слишком запутанным.

Помимо возможности прямо в браузере проверить и поэкспериментировать со страничкой, у инструментов разработчика есть ещё одно немного странное применение: мозговой штурм с целью улучшения дизайна сайта. Мы проводим такие мозговые штурмы в среднем раз в неделю, и выглядят они так: Леонид делится своим экраном, и мы вместе думаем как сделать ту или иную часть сайта лучше.

Но вместо того, чтобы рисовать эти правки в Photoshop, Леонид прямо в веб-инспекторе удаляет ненужные элементы, меняет тексты и правит CSS. Так мы сразу вживую видим, как будет выглядеть сайт после этих правок, и при желании можем сразу же скопировать изменения в код и выпустить их для пользователей.

Шаг девятый. Анализируйте чужую работу

Это очень интересный метод, который позволяет вам очень быстро развиваться. Дело в том, что разобраться в чужом коде очень непросто, на это способны единицы даже профессиональных программеров.

Если вы займетесь этим в самом начале своей деятельности, наверняка, в будущем сможете пожать отличные плоды.

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

Если конкретнее, вам нужно делать следующее:

  • думайте, как можно было бы оптимизировать шифр, то есть уменьшить листинг;
  • ищите ошибки и недоработки без компилятора и с ним;
  • думайте, какие другие подходы можно было бы использовать для выполнения поставленной задачи.

PHP-разработчик

Обязанности PHP-разработчика

Зависят от конкретного проекта и оговариваются в каждом случае с заказчиком. Однако можно выделить несколько основных задач:

  • — разработка и создание web-сайтов, web-приложений их модулей или страниц при помощи языка программирования, и их тестированиz;
  • — поддержка интернет-ресурсов, оптимизация работы сайтов (к примеру, увеличение производительности, повышение степени безопасности сайта и т.п);
  • — интеграция интернет-ресурсов с различными внутренними и внешними системами (к примеру, 1С);
  • — создание специализированной технической документации;
  • запуск и администрирование сайта;
  • исправление выявленных ошибок и недоработок;
  • также PHP-разработчики занимаются версткой, иногда – разработкой ТЗ, плюс senior PHP-разработчики могут и осуществлять руководство над младшими специалистами.

Советы родителям технарей и гуманитариев

Понятно желание родителей помочь ребенку с профориентацией

Однако очень важно не настраивать его, что он не может работать в сфере, которая его привлекает, что от него закрыта айти-сфера, раз он не математик. Намного лучше показать, что он МОЖЕТ работать в любой сфере

  • Нужно только разобраться, чем именно он там может заняться, где получать удовольствие и приносить пользу компании. Без технаря дизайнерское бюро не сможет работать, а без гуманитария приложение будет некрасивым и неудобным.
  • Отслеживайте неверные установки, которые могут быть навязаны в школе. Типа математику не тянет — гуманитарий. Обязательно расскажите ребенку о примитивности такого деления и подчеркните, что у него масса возможностей.
  • Расскажите ребенку, что даже в программировании есть столько вариантов, что неудача с питоном или С++ вообще ни о чем не говорит. Имеет смысл попробовать другие языки, другую методику, если хочется создавать продукт, а не только пользователься им.
  • Найдите для ребенка дополнительное образование в айти сфере, которая не требует заоблачных знаний. Например, геймдизайн, робототехника — это с нуля доступно почти каждому. И результат есть, и сфера айти. Очень способствует тому, чтобы у ребенка поднялась самооценка.
  • Точно так же условному технарю стоит показать, что он не отрезан от искусства и мировой культуры, даже если ему медведь на ухо наступил, стихи он не понимает, а нарисовать может только кривой кружок. Познакомьте его с нейронными сетями и искусственным интеллектом — управление через код может создавать настоящие произведения искусства и поможет проявить свой внутренний мир так.

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

JavaScript

И, наконец, программирование! Ни Git, ни HTML, ни CSS не являются языками программирования. Ничего «живого» с ними не сделать — анимацию не добавить, всплывающее окошко не вставить — никакого праздника!

Читать ещё: «Погружение в JavaScript: подборка книг для начинающих изучать язык»

JavaScript – один из самых, если не самый популярный язык программирования. Его популярность обусловлена одной простой причиной: это язык, понятный абсолютно всем браузерам, а значит это единственный вариант добавить на ваш сайт немного движения или даже сделать из него полноценное веб-приложение (в духе Google Docs).

Изучая JavaScript, вы убиваете сразу двух зайцев – и основы программирования узнаете (а значит, сможете разобраться в других языках), и получаете возможность делать самые разные вещи, от взрывающихся на фоне страницы вертолётов, до удобной формы проверки данных кредитной карточки.

Основы программирования на JavaScript можно изучить на CodeAcademy. Но как и в случае с HTML и CSS, продолжать изучение лучше на чём-то более приближенном к реальности. Поэтому возьмите свёрстанную пунктом ранее страничку и добавьте в неё чуть больше жизни. Пусть при загрузке в лицо пользователю бросается всплывающее окно, а любой текст при попытке его скопировать сразу же исчезает.

А чтобы реализация подобных аттракционов прошла быстрее и легче, стоит посмотреть в сторону jQuery. Это набор готовых к использованию кусков кода (библиотека), он используется на 70% всех сайтов в мире и значительно облегчает написание клиентского кода. Прочитайте документацию к jQuery, научитесь с его помощью управлять HTML, и изучите как использовать бесчисленные плагины (рекомендую начать с jQuery UI). Порог вхождения в эту библиотеку предельно низок, а предоставляемые ею возможности покрывают 80% нужд.

Профессиональные разработчики скорее всего скорчат рожицу от упоминания jQuery. Но вы ещё не профессиональные разработчики, и изучение чего-то более сложного может только отпугнуть! Поэтому сфокусируйтесь на получении удовольствия от изучения JavaScript, а уже потом, при необходимости, погрузитесь в продвинутые темы.

Для чего JavaScript пригодился Леониду? Однажды выяснилось, что чтобы создать современный анимированный баннер, нужно уметь программировать на JavaScript. В этот момент Леонид вооружился имеющимися навыками HTML и CSS, стиснув зубы прошёл основы JavaScript и наклепал нам баннеров.

А ещё он иногда использует его внутри Google Tag Manager. Скорее всего, чтобы делать хитрые маркетинговые штуки за спиной у пользователей и коллег.

Шаг третий. Изучение компиляторов

Для справки: Компилятор – это техническое решение, предназначенное для перевода вводимых команд в машинные инструкции, грубо говоря, в нолики и единички, то есть в такую интерпретацию, на которой машина будет понимать, что ей делать. 

Собственно, все свои программы вы будете писать, и выполнять именно в компиляторах.

Рис. 4. Free Pascal

Как видим, выглядит он достаточно «старомодно», но программирование начинается именно с этого. Кстати, компилятор C++ выглядит практически так же.

Рис. 5. Turbo C++

Что касается Паскаля, то существует также GNU Pascal, Turbo/Borland Pascal, TMT Pascal и Virtual Pascal. А для С++ можно использовать Borland C++, Visual C++, Dev C++, GCC и Eclipse.

Но это, как мы говорили выше, только начало. Останавливаться на этом нельзя. Когда вы сделали выбор относительно своего направления, можно переходить к более сложным компиляторам.

Вот список наиболее популярных на сегодняшний день компиляторов в зависимости от направлений деятельности:

  • Что касается Objective-C, то здесь практикуется работа на Xcode, который можно на сайте apple.com. Если вы решили заниматься разработкой мобильных приложений, обязательно прочитайте нашу статью о работе над программой на iOS. Она как раз предназначена для новичков.

  • Если говорить об Assembler и других языках, которые практикуются в робототехнике, то здесь сразу необходимо скачать MASM, если вы работаете на Windows. А вообще, в зависимости от выбранной вами сферы деятельности и компании, на которую вы устроитесь работать, компиляторы могут быть самыми разными. Некоторые фирмы пишут собственные решения для обработки кода. Поэтому, если вы выбрали робототехнику, лучше изучить соответствующие книги и делать все, как там говорится. Об этом мы еще поговорим.

Также существует множество онлайн компиляторов. Они полезны тем, что обслуживают множество языков программирования и не требуют установки – очень удобно!

Вот наиболее популярные из них:

Рис. 6. CodePad на планшете

Это уникальный сервис, который позволяет создать несколько виртуальных компьютеров и делать на них все, что угодно, в том числе и компилировать шифры.

Виртуальные машины будут работать под управлением ОС Ubuntu. На них вы можете хоть удалить системную папку, установить абсолютно любую программу и так далее.

Рис. 7. Koding.Com

А теперь приступим к написанию вашего первого шифра (кода). Сделать это можно даже без книг и длинных инструкций.

Цифровой суверенитет

Вне зависимости от того, как сложатся наши отношения с айтишной Европой и США, в ближайшие годы мы будем продолжать работать над цифровым суверенитетом — чтобы Россия не зависела от зарубежных сервисов и объектов ИТ-инфраструктуры. Это значит: 

  • Много новых онлайн-сервисов
  • Создание собственного софта
  • Развитие российских облаков и дата-центров
  • Цифровизация госуслуг и развитие цифровых экосистем

Как защитить ваши важные файлы

Основной риск в том, что в России недостаточно населения, чтобы обеспечить рынок под все эти дорогие проекты. Скажем, если ты Google и ты работаешь на весь мир, сделать Google Drive тебе выгодно — у тебя будут десятки миллионов пользователей. Ты сможешь окупить разработку одной лишь рекламой. А если ты небольшой российский стартап, то у тебя в 50 раз меньше пользователей. Тебе не хватит объема рынка, чтобы окупить свою разработку.

Поэтому надежда на то, что все эти проекты будет софинансировать государство — напрямую, через инвестфонды или с помощью ИТ-гигантов типа Яндекса и Мейл-ру. Есть основания полагать, что так и будет. Работа в этих сферах будет. 

В этой сфере нужны все: проджекты, продакты, бэкенды, веб-разработчики, маркетологи, аналитики, тестировщики и далее по списку. 

Аутстаффинг

Когда Россия приоткроется для международного бизнеса, наши ИТ-кадры будут самыми дешевыми в Европе. В России возродятся аутстаффинговые компании: вы пишете код для США и Европы за валюту, а они платят вам ниже своих местных МРОТов. 

Мы тут в какой-то степени окажемся страной «третьего мира»: обычно так делают в странах, где уровень жизни намного ниже, а мозги на том же уровне, что в Европе и США. Самый большой пул аутстаффа — это Индия.

Но так-то работать на аутстаффе совершенно нормально. 

В основном, здесь будут вакансии для джунов и мидлов. Сеньорские вакансии обычно закрываются на местах.

Дополненная реальность

Фото: ExtremeTech

Дополненная реальность «проецирует» цифровые изображения и информацию в реальный мир. Несколько лет назад Google запустил AR-проект Google Glass, но он не получил признания. Похожий проект от Yelp под названием Monocle позволял пользователям видеть сквозь экран смартфона дополнительную информацию об окружающих их компаниях. Эта возможность была классной, но не революционной.

Переломный момент для дополненной реальности произошел в 2016 году, когда внезапно обрела популярность игра с элементами дополненной реальности Pokemon Go. Кроме того, такие серьезные стартапы, как Magic Leap, всерьез считают, что виртуальная и дополненная реальность сыграют важную роль в нашем мире.

Удаление

И так, мы знаем что у пользователя Пётр Петров id равен 2, приступим:

Как видите, здесь для подстановки параметра в запрос мы использовали метод bindParam() им удобно пользоваться когда нам нужно подставить единичную переменную в запрос

Обратите внимание, что второй аргумент не может быть передан напрямую в виде значение (нельзя написать просто 2), мы должны передать именно переменную (которую по идеи нужно предварительно проверить и всё такое).. Как видите работать с PDO да и в целом с базами данных в PHP не так уж и сложно

Надеюсь статья была вам полезна. Желаю удачи!

Как видите работать с PDO да и в целом с базами данных в PHP не так уж и сложно. Надеюсь статья была вам полезна. Желаю удачи!

Обучение на PHP-разработчика

Обучение PHP разработчика можно поделить на 3 типа:

  1. Образование в высшем учебном заведении.
  2. Онлайн-курсы.
  3. Самообучение.

Каждый из вариантов не стоит воспринимать обособленно, скорее наоборот. Самый гармоничный способ познать профессию с нуля — получать знания от кого-либо и учиться самому. Знания можно получать в ВУЗе или на онлайн-курсах, а подкреплять их и расширять кругозор можно через самостоятельное обучение.

Высшее образование

Профессии исключительно по PHP в российский ВУЗах не существует, но сам язык программирования и другие дисциплины, которые требуются для работы, есть.

Наиболее подходящими специальностями будут:

  • Автоматизированные системы обработки информации и управления;
  • Вычислительная техника и программное обеспечение;
  • Программная инженерия;
  • Прикладная информатика;
  • Информатика и компьютерные науки;
  • Фундаментальная информатика.

Что касается высших учебных заведений, выделим несколько подходящих:

  • Санкт-Петербургский университет аэрокосмического приборостроения;
  • Московский политехнический университет;
  • Московский государственный технический университет им. Н. Э. Баумана;
  • МИРЭА;
  • Санкт-Петербургский политехнический университет Петра Великого.

Можно подобрать специальность и ВУЗ на сайте Postupi. В нем есть 2 специализации, подходящие под программирование на PHP: web-программист, и разработчик web и мультимедийных приложений.

Обучение онлайн

Онлайн-курсы преподают квалифицированные специалисты, а программа обучения отточена и многократно проверена. После успешного завершения курсов, студенту окажут помощь в устройстве на работу или прохождении стажировки. Всё это будет, если Вы поступите на качественные онлайн-курсы.

3 популярных онлайн-курса по профессии:

1. Профессия “PHP-разработчик” на Skillbox

Годовая образовательная программа, в которой обучают работе с нуля, а в качестве основного фреймворка выбран Symfony.

Ссылка на курс и подробности: https://skillbox.ru/course/profession-php/

2. Обучение на PHP-разработчика в GeekBrains

Программа обучения длительностью в 4 месяца. По окончанию курса студент получает стажировку в ГикБрейнс, а также сертификат.

Ссылка на курс и подробности: https://gb.ru/professions/php_developer

3. Курс “Веб-программирование с нуля” от Нетологии

Это общая программа обучения, которая не сконцентрирована на PHP, а делает из студента универсального веб-разработчика. В курсе есть всё, что понадобится для освоения профессии.

Ссылка на курс и подробности: https://netology.ru/programs/web-developer

Udemy

Если курсы в онлайн школах для Вас слишком длительные или дорогие, то курсы PHP разработчика можно найти и на платформе Udemy. В ней есть целых 2200 (на момент публикации статьи) частных курсов по данному языку программирования.

Ссылка на список всех курсов по PHP: https://www.udemy.com/courses/search/?src=ukw&q=PHP+разработчик

Самостоятельное обучение

PHP великолепно подходит и для самостоятельного обучения. Целеустремленный, дисциплинированный и трудящийся человек, вполне способен с нуля освоить специальность вплоть до миддл уровня (при наличии практики). Можно не потратить таким образом ни копейки, либо же вложиться в покупку недорого курса, книги или лекции. Это тот редкий случай, когда речь идет о программировании и самообучении, и оба этих термина не являются чем-то несовместимым.

Далее перечислены несколько ссылок на материалы, которые можно использовать для самообразования.

Подборка книг:

  • Самоучитель PHP 7. Игорь Симдянов;
  • PHP 7 в подлиннике. Дмитрий Котеров;
  • Изучаем PHP 7. Дэвид Скляр;
  • Объекты, шаблоны и методики программирования. Мэтт Зандстра;
  • Чистый код. Создание, анализ и рефакторинг. Мартин Роберт К.

Источники для самостоятельного обучения:

  • YouTube-канал Дмитрия Афанасьева, посвященный программированию на PHP и не только;
  • Введение в PHP 7 (обзор изменений по сравнению с предыдущей версией);
  • Уроки по PHP на русском;
  • Обзор PHP для начинающих;
  • Изучение PHP с нуля на русскоязычном сайте;
  • Курсы с текстом и видео на сайте PHP Start;
  • Онлайн-учебник по PHP;
  • Современный учебник по Java Script;
  • Руководство по использованию контроля версий Git;
  • Курс на YouTube по HTML и CSS (на русском языке);
  • Курс на YouTube по SQL.

Graceful degradation

Это был наш следующий этап оптимизации, который точно стоит пройти. Концепция Graceful degradation позволяет заранее подумать, что делать, если наш сервис, который мы только что оптимизировали с reverse-proxy — не ответил. И ответ этот не очень простой: надо хорошо подумать, как жить дальше без этих данных.

Покажу на примере объявления с Авито о продаже реактивного двигателя от МИГа. Красными блоками я подсветил не ответившие сервисы: здесь нет данных от сервиса пользователей и сервиса статистики:

То есть даже без этих данных объявление приемлемо для нас как для пользователя: в нём есть номер телефона, по которому можно позвонить или написать, а также есть фотографии

В первом случае больше данных, но во втором мы не упали — и это важно. Вот что такое Graceful degradation

Выводы

Каким бы классным не был Graceful Degradation, он тем не менее — очень сложная штука, и его реально долго и дорого внедрять. Каждый раз вам придется договариваться с бизнесом. Потому что когда вы предлагаете продакту статистики: «Дружище, ты отвечаешь за статистику, а давай я ее иногда не буду показывать?» — то он вам ответит, что для него статистика — основной продукт, и он категорически против ее не показывать.

Graceful degradation увеличивает сложность и так непростой бизнес-логики в PHP-контроллерах. В каждом случае вам потребуется делать разные ветвления, если вы не можете получить данные статистики или пользователя — и в каждом месте кода для каждой странички это делается по-разному.

И вдобавок эта концепция требует проработки для каждого бизнес-сценария отдельно. Потому что один и тот же сервис — например, service-user — абсолютно по-разному деградирует на разных страницах:

Graceful degradation — проработка каждого бизнес-сценария

На поисковой выдаче, если вдруг мы не знаем Васю или Петю, мы можем показать пустой блок, и последствий будет минимум. На странице объявлений не получить данные по Service-user будет достаточно важным, и мы покажем бабл «Попробовать еще раз». А страницу пользователя мы вообще не сможем отобразить, если не знаем ничего о пользователе. Поэтому Graceful degradation сложно реализуется в коде.

HTTP

PHP — это в первую очередь серверный язык программирования, и важно понимать принцип работы клиент-серверного протокола HTTP, который лежит в основе обмена данными в сети интернет. Грубо говоря, происходит обмен сообщений между веб-браузером и сервером по принципу запрос-ответ (request-response)

Как правило, между клиентом и сервером находятся посредники, такие как модемы, маршрутизаторы и прочие сетевые узлы.

HTTP-запросы состоят из:

  • метода (ознакомиться со всеми методами можно здесь);
  • версии HTTP-протокола;
  • пути к ресурсу.

Опциональными для запроса являются заголовок для отправки дополнительной информации и тело запроса, необходимое в том случае, если отправляются какие-то данные, как с операциями POST и PUT.

Lead Software Engineer, Infrastructure

Cube Dev, Удалённо, От 8000 $

tproger.ru

Вакансии на tproger.ru

Для работы с HTTP используйте веб-сервер и почтовый прокси-сервер Nginx, REST, изучите принцип работы веб-сессий и «печенек».

Большие данные и Hadoop

Изображение: TechCrunch

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

В 2011 году появился фреймворк с открытым исходным кодом Apache Hadoop. Он умеет управлять и обрабатывать крупные массивы данных на нескольких компьютерах одновременно. С помощью Hadoop такие крупные компании, как Danske Bank, смогли проанализировать большой объем данных о транзакциях за 150 лет существования банка.

Компании и частные консультанты используют большие данные и глубокий анализ для определения трендов рынка и клиентских предпочтений. Эта технология используется даже в больницах — анализ данных помогает выяснить шаблоны риска и на основе полученных данных скорректировать методы ухода за пациентами.

Как развеивать мифы

Для чего вообще программисту нужно бороться со стереотипами и развивать коммуникативные навыки?

  • Во-первых, это командная работа. В одиночку большие задачи не делаются, и даже внутри узкой команды нужно уметь общаться. Чем лучше вы общаетесь – тем лучше делаете работу. Обсуждаете документацию.

  • Решение текущих задач, обсуждение документации. Здесь в том числе нужны и навыки письменного общения, когда письменную информацию нужно воспринимать, обсуждать, уметь задавать вопросы.

  • Конечно же, для карьеры. Можно ведь быть гениальным программистом, но сидеть в замкнутом пространстве, где никто о тебе не узнает. Чтобы понравиться потенциальным работодателям, нужно развивать коммуникационные навыки.

  • Ну и в личной жизни это тоже имеет значение.

Как можно развивать коммуникационные навыки в обычной жизни без специального обучения? На тренинги часто времени нет, а решать задачу коммуникации хочется в работе.

  • Самый сильный инструмент для прокачки коммуникации – выступления на конференциях. Мы наблюдаем, что люди, которые регулярно принимают участие в Infostart Event в качестве докладчиков, растут на глазах и в профессиональном, и в карьерном уровне.

  • Формат митингов. Есть теория: когда разрабатывали технологии гибких методик управлении, закладывали в них и такую цель, чтобы поднять программистов из-за компьютера и заставить их общаться между собой. Даже если это краткая ежедневная коммуникация, человек стремится внятно сформулировать мысли и донести их до коллег, чтобы решить задачу.

  • Общение на профессиональных форумах помогает, если у программиста есть сложности с формулированием вопросов. Можно перефразировать входящий вопрос, отвечать людям, находить решение проблем. Есть такой термин – конструктивное письменное общение, оно здесь хорошо прокачивается.

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

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

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

В заключение хочу сказать, что двойные стандарты в отношении вариативности между компьютером и человеком – основная причина, по которой программистов считают странными. Если человек вас не понимает – попробуйте не замыкаться, а подобрать другие слова и понаблюдать за результатом.

*************

Данная статья написана по итогам доклада (видео), прочитанного на INFOSTART MEETUP Ekaterinburg.Online. Больше статей можно прочитать здесь.

CSS / HTML

Рука об руку с JavaScript идут CSS и HTML — вместе они составляют святую троицу разработки веб-интерфейса. HTML (Hyper Text Mark Up Language) — это язык веб-браузеров — с помощью которых сделаны сайты. CSS (каскадные таблицы стилей) заставляет их выглядеть стильно и со вкусом — гораздо лучше, чем те ужасные сайты, действующие с первых дней работы в Интернете

Для разработчиков веб-интерфейсов очень важно знать эти инструменты от и до. Они также окажутся полезными для backend разработчиков: вы сможете понять, как изменения вашей серверной части влияют на конечного пользователя

У нас можно изучить основы HTML бесплатно!

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: