Каталог RSS-каналов
Статистика

RSS-каналов в каталоге: 3394

Добавлено сегодня: 0

Добавлено вчера: 0

Hi-Tech / Программы

Блог о веб-разработке и веб-технологиях

Обмен опытом, выбор, изучение

Найдено 25 записей

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

Учебная задача для Senior Backend Developer: изощрённая проверка прав доступа

If (!empty($_SESSION[‘userid’])) … Простейшая проверка на авторизацию. А если нужно сложнее? if ($user->isAdmin()) … А ещё сложнее? Здесь не будет никакого тьюториала. По крайней мере, пока. Это реальная задача на создание системы авторизации, которая уже была полностью реализована в проекте Icons8, где я работаю Web Architect and Backend Developer. Цель: показать, насколько сложными могут быть системы проверки прав доступа в реальных программных продуктах. Каждый, кто полностью реализует подобную систему самостоятельно, претендует на должность Senior Developer. Текущая реализация основана на PHP и фреймворке Yii 1.x, но может быть повторена на любом другом языке и фреймворке, а также без фреймворков. Базовая сущность, доступ к которой должен быть...

Как вести себя с людьми, которые не нравятся

Почему женских футбольных команд меньше, чем мужских? Шуточный ответ: потому что женщины не могут себе позволить носить одинаковую одежду. Тоже шуточный ответ, который ближе к реальности: если в команде возникают трения, то женщины предпочитают устроить спор, истерику, выжить оппонентку из команды или уйти. А мужчины будут сжав зубы играть дальше, потому что в команде обязательно должно быть 11 человек, иначе команду не включат ни в какие соревнования. Soft Skills Эта публикация про «Soft skills» (в переводе с английского — «мягкие навыки»). Это те, которые не относятся непосредственно к профессиональной области знаний. Это универсальные личные навыки, которые можно применять в разных жизненных ситуация, в быту и на работе. По разным оценкам считается, что...

Почему я занимаюсь наставничеством

Три года назад я заметил ажиотаж в области информационных технологий — количество желающих изучить программирование резко возросло. Я для себя сделал обзор разных способов изучения, которые представлены на российском и международном рынке. Это курсы самоподготовки, групповые онлайн-курсы, сертификация, книги, статьи, видео-подкасты и другое. Перечислять не буду — гугл и яндекс сделают это лучше меня. Также не хочу перечислять их преимущества и недостатки — попробуй сам, сделай выводы самостоятельно. Отметил такое направление — наставничество, менторство. За рубежом это называют «1:1 help», «personal assistance», «mentorship». Это онлайн-консультации, проверка кода, поиск решений. Не массовая, а персональная помощь. Она для тех, у кого после просмотра...

Главный вопрос июля: как выбрать специальность будущему айтишнику?

«Завтра буду уже нести документы в ВУЗ на поступление, и меня тревожит вопрос насчёт специальности: выбор между «Программной инженерией» и «Компьютерными науками и технологиями». Может кто-то из вас учится/учился на этих спец? Какая востребована больше?» «Программная инженерия, информационные технологии, прикладная информатика, Управление в технических системах. Что вообще тут лучше?» Судя по активности в соц сетях и на тостере — очень актуальная тем, её обсуждают прямо сейчас. Второй по актуальности, по моей личной оценке — вообще нужность или ненужность высшего образования. Молодые люди начитались разгромных статей о качестве преподавания и потере времени. Моё мнение по этому поводу в конце этой статьи. Третий вопрос такой: «Надо за август — сентябрь...

Один: «Ты записал, что я тебе сказал?«. Второй: «Я запомнил!«. Через час бездонная пропасть в памяти и звенящая тишина в голове. «Я запомнил. Всё тут, в голове. Да, понятно. Хорошо. Ясно. Сделаю.» Помню себя таким. Это была попытка доказать себе и другим, что у меня отличная память и я схватываю суть проблем на лету. Неудачная попытка. И не единственная. Детали обсуждения стирались через день, а на очередной сдаче куска кода опять и опять возникало: — Тут не так! Ну мы же это обсуждали! А ну-ка, покажи свой список задач… Тут только шесть пунктов из семи и в двух не то, что мы обсуждали. Ты не мог подойти и уточнить ещё раз? Почему ты застрял на этой задаче, ведь мы её оставили «на десерт»? Фиаско, раз за разом. По современному это «рукалицо». Человеческий...

Основная идея: публикация материалов в формате билингва. Адрес проекта: http://diglot.ru/ Реализована публикация статей на английском языке и их переводов на русский язык. При чтении статьей сразу видно и оригинал, и перевод. Таким образом читатель сможет изучать английский и русский языки, используя примеры качественного перевода. А при этом, попутно, получать ту информацию, о которой идет речь в статье. Совмещение полезного с полезным. Diglot — это учебный проект для команды начинающих программистов под моим руководством. Проект с открытым исходным кодом. Команда полностью удалённая, общение через Slack / Skype / Zoom. По мере решения задач рассматриваем технические и организационные вопросы разработки веб-приложений. Мы с радостью примем помощь советом и...

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

Построение реляционной модели

Смотришь иной раз на чужую реляционную модель и думаешь: ну вот как они столько сущностей, атрибутов и связей напридумывали? Что у них там в голове творится, для чего понадобилась такая сложная схема? Сложная реляционная модель А они тебе: «И это только четверть от модели, потому что ты смотришь на старую версию, а новую мы в графическом виде и не рисовали». И точно: в базе данных в четыре раза больше таблиц, чем на картинке. На моей практике самая сложная модель данных состояла из двух сотен сущностей. Рисовать её никто не решился. Была только упрощённая модель со связями без уточнения атрибутов. Проблема даже не сущностях, а связях между ними. Схему может построить даже phpMyAdmin последних версий, но бесконечное количество нитей-связей превращают...

Оценка работ

Видел в отчёте с СТО значения в колонке «норма час». Интересные цифры. Они заранее знали сколько времени занимает замена масла, диагностика тормозной системы, замена ремня генератора. Любая работа предполагает оценку времени на завершение. Главные вопросы: Сколько по количеству работ удастся выполнить за неделю/месяц/квартал? Сколько по сумме это будет стоить исполнителю и заказчику? Оценка задач «по подобию» Надо уметь оценивать задачи. Будет проще оценивать, если такую работу уже делал. Ну, например, если в прошлый раз делал тему для WordPress за 3 дня, то и в этот раз предположительно ещё одна тема будет сделана так же за 3 дня. Иногда оценка делается с учётом похожести. Например, надо тему для Joomla, но я делал темы для WordPress, а для Joomla ещё ни...

Для удобства навигации по истории изменений и чтения изменений твоего проекта, отделяй commit, которые содержат автоматически созданный код от твоего собственного. Пиши понятные сообщения к каждому commit. Split commits. Дели код на свой и чужой Пример: базовое приложение на базе фреймворков Laravel5, Yii2, Ruby-On-Rails, Django изначально включают десятки файлов и специальных директорий, которые позже приходится модифицировать или дополнять. Для кого бы ты не создавал этот проект — для себя лично, для команды, в качестве тестового задания — изменения, связанные с включением в проект чужих решений — скелет, компоненты, расширения, плагины, библиотеки — должны быть отдельными комитами. Иначе твои пара файлов или даже пара строк среди 20-50 файлов фреймворка...

Веб-портфолио

Портфолио — это подборка выполненных работ. В портфолио отбирают лучшие работы, которые демонстрируют сильнейшие навыки, стиль, методы работы. Портфолио используется для того, чтобы показать работодателям как хорошо были выполнены разные работы, доказать универсальность исполнителя. Определение с Википедии. «Мастерская художника» (Александр Лутай [ceshurik]) Портфолио художников включает репродукции картин или электронные копии, музыканта — аудиозаписи, композитора — ноты, видео-оператора — фрагменты видео-записей (список условный, всё может быть сложнее). Значительное отличие портфолио для специальностей, связанных с веб-технологиями — это интерактивность, поскольку обычно оно выполняется в виде набора веб-страниц с гипертекстовой навигацией. Веб-портфолио...

Когда ООМ убил memcached

Ситуация: на сайте есть несколько блоков данных, которые подгружаются с других сайтов и затем некоторое время хранятся в memcached. Это позволяет реже обращаться к другим сайтам и тем самым быстро выдавать страницы. Но в понедельник всё пошло не так, как было задумано. Есть такая техника хранения данных в кэше, которая называется «Ленивый кэш» (Lazy Cache). Схема такая: Когда нужна информация, проверить наличие её в кэше Если в кэше этой информации нет, то запросить из источника данных, затем сохранить информацию в кэш Далее вернуть данные из кэша Схема Lazy Cache [ websequencediagrams.com ] Схема позволяет при наличии данных в кэше работать очень быстро. При этом в кэше хранятся только реально необходимые данные. В чём минус этой схемы? Если данных в кэше...

Знания без практики — это как книга по плаванию в рюкзаке тонущего. Вроде книга есть, а не помогла. Так же и с программированием — нужно применять знания на практике, то только тему для практики иногда очень трудно выбрать. Соискателя на вакансию веб-разработчика обязательно спросят — в каких проектах ты участвовал? Если соискатель уже имеет опыт работы, то он, конечно сошлётся на него. А если опыта нет, то подойдёт любой учебный проект. Сам учебный проект работодателю не нужен. Ему нужен факт того, что соискатель на практике сталкивался с реальными проблемами веб-разработки, которые выходят за рамки статей, книг и курсов по программированию. Итак, надо выбрать идею и … Вопрос на CodeProject Need ideas for a pet project от 2011 года: Мне нужна идея...

Некоторая часть веб-приложений не пишется целиком, а использует уже существующие сторонние сервисы и их открытые интерфейсы обмена данными (API). Хочу изложить тут. Вдруг кому пригодится. Сделаете сами — буду пользоваться. Пригласите меня архитектором — помогу всеми своими силами. Хотел сделать интернет-сервис, который помогает другим интернет-сервисам обмениваться данными между собой, если они не относятся к одному проекту. Ну, например, если интернет-магазин хочет отправлять SMS-сообщения, но чтобы не опускаться на уровень протокола SMPP, а ограничиться веб-сервисами на HTTP, которые предоставляет провайдер связи. Фишка проекта для веб-сайтов 1. Хорошая документация и средства отладки для всяких разных сервисов 2. Возможность использовать в приложениях на...