Search
Write a publication
Pull to refresh
1
0
Send message

Создание игры Tower Defense в Unity — Часть 1

Reading time16 min
Views60K
image

Игры жанра tower defense приобретают всё большую популярность, и это неудивительно — немногое может сравниться с удовольствием от наблюдения за собственными линиями защиты, уничтожающими злых врагов! В этом туториале из двух частей мы создадим игру tower defense на движке Unity!

Вы узнаете, как сделать следующее:

  • Создавать волны врагов
  • Заставить их следовать по точкам маршрута
  • Строить и апгрейдить башни, а также научите их, как разбивать врагов на мелкие пиксели

В конце мы получим каркас игры, который можно развивать дальше!
Читать дальше →

Насколько хорошо ты знаешь bash?

Reading time4 min
Views39K

Пользуешься командным интерпретатором каждый день? Готов решить несколько логических задачек и узнать что-то новое? Добро пожаловать под кат.
Читать дальше →

Go contribution workshop в России

Reading time6 min
Views3.2K

Давно планировали отправить патч в Go, но постоянно откладывали? Сталкивались с трудностями, не знали, с чего начать? В данной статье я опишу как мы проводили Go contribution workshop в Казани, о его результатах, а также об уроках, которые извлекли организаторы.


Спойлер: планируется повторить это мероприятие когда Go перейдёт в фазу активной разработки (выйдет из состояния code freeze). Подробности смотри под катом.

Читать дальше →

Как в React избавиться от сложности в управлении состоянием — отчёт по итогам поездки на React Amsterdam

Reading time5 min
Views10K
В апреле посчастливилось побывать на очень крутом мероприятии — React Amsterdam. Кроме приятных организационных моментов было ещё и много интересных докладов. Они были, в основном, прикладного характера. Поскольку стек технологий в принципе устоялся, докладчики рассказывали о способах решения практических проблем, а не продвигали что-то незнакомое и революционное. Здесь я расскажу подробнее о выступлении “setState MachineМикеле Бертоли из Facebook.

Основная проблема, которой был посвящен доклад, — сложность в управлении состоянием в React.
Читать дальше →

Методика разработки высоконадёжных серверов на Go

Reading time26 min
Views19K
Время от времени перед веб-программистами встают задачи, способные нагнать страху даже на профессионалов. Речь идёт о разработке серверных приложений, которые не имеют права на ошибку, о проектах, в которых стоимость сбоя чрезвычайно высока. Автор материала, перевод которого мы сегодня публикуем, расскажет о том, как подходить к решению таких задач.


Читать дальше →

Три варианта слова «спрятать» на английском и другие синонимичные ряды

Reading time4 min
Views12K
Мы продолжаем наше плавание по океану синонимов в английском языке и сегодня разбираемся с новыми синонимическими группами, в числе которых есть полезные для использования при описании человеческой личности. И, чтобы не попасть впросак в этом деликатном деле, важно понимать все синонимические хитрости и тонкости.

image
Читать дальше →

Кто кого учит? Разница между глаголами teach, study и learn

Reading time4 min
Views21K
«Да ладно, teach — это от teacher, а study — это от student!» — говорят студенты, после чего добавляют: «By the way, I studied 2 new words today!» и… ошибаются. Может, с глаголом teach и правда все понятно. Но в чем же разница между study и learn?

image
Читать дальше →

Google's Shell Style Guide (на русском)

Reading time14 min
Views24K

Предисловие


Какой Shell использовать


Bash единственный язык shell скриптов, который разрешается использовать для исполняемых файлов.


Скрипты должны начинаться с #!/bin/bash с минимальным набором флагов. Используйте set для установки shell опций, что бы вызов вашего скрипта как bash <script_name> не нарушил его функциональности.


Ограничение всех shell скриптов до bash, дает нам согласованный shell язык, который установлен на всех наших машинах.


Единственное исключение составляет если вы ограничены условиями того под что вы программируете. Одним из примеров могут стать пакеты Solaris SVR4, для которых требуется использование обычного Bourne shell для любых скриптов.


Когда использовать Shell


Shell следует использовать только для небольших утилит или простых скрптов-оберток.


Хотя shell-скриптинг не является языком разработки, он используется для написания различных утилит во всем Google. Это руководство по стилю является скорее признанием его использования, а не предложением использовать его в широком применении.

Читать дальше →

Нужные HTTP-заголовки

Reading time5 min
Views47K
Наши клиенты в Fastly любят манипулировать заголовками HTTP. Подбор правильной комбинации заголовков — одна из лучших вещей, какую вы можете сделать для безопасности своего сайта и значительного вклада в его производительность.

Большинство разработчиков знают о важных и нужных HTTP-заголовках. Самые известные — Content-Type и Content-Length, это почти универсальные хедеры. Но в последнее время для повышения безопасности начали использоваться заголовки вроде Content-Security-Policy и Strict-Transport-Security, а для повышения производительности — Link rel=preload. Несмотря на широкую поддержку в браузерах, лишь немногие их используют.

В предыдущей статье мы рассмотрели ненужные заголовки. Сейчас разберёмся, какие заголовки действительно следует настроить для своего сайта.
Читать дальше →

Как безопасно программировать в bash

Reading time11 min
Views45K

Почему bash?


В bash есть массивы и безопасный режим. При правильном использовании bash почти соответствует практикам безопасного кодирования.

В fish сложнее допустить ошибку, но там нет безопасного режима. Поэтому хорошей идеей станет прототипирование в fish, а затем трансляция с fish на bash, если вы умеете правильно это делать.

Предисловие


Данное руководство сопровождает ShellHarden, но автор также рекомендует ShellCheck, чтобы правила ShellHarden не расходились с ShellCheck.

Bash — не тот язык, где самый правильный способ решить проблему одновременно является самым простым. Если принимать экзамен по безопасному программированию в bash, то первое правило BashPitfalls звучало бы так: всегда используй кавычки.

Главное, что нужно знать о программировании в bash


Маниакально ставить кавычки! Незакавыченная переменная должна расцениваться как взведённая бомба: она взрывается при контакте с пробелом. Да, «взрывается» в смысле разделения строки на массив. В частности, расширения переменных вроде $var и подстановки команд вроде $(cmd) подвергаются расщеплению слов, когда внутренняя строка расширяется в массив из-за расщепления в специальной переменной $IFS с пробелом по умолчанию. Это обычно незаметно, потому что чаще всего результатом становится массив из 1 элемента, неотличимый от ожидаемой строки.
Читать дальше →

Простое объяснение принципов SOLID

Reading time7 min
Views296K


Принципы SOLID — это стандарт программирования, который все разработчики должны хорошо понимать, чтобы избегать создания плохой архитектуры. Этот стандарт широко используется в ООП. Если применять его правильно, он делает код более расширяемым, логичным и читабельным. Когда разработчик создаёт приложение, руководствуясь плохой архитектурой, код получается негибким, даже небольшие изменения в нём могут привести к багам. Поэтому нужно следовать принципам SOLID.

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

Чтобы понять принципы SOLID, нужно чётко понимать, как использовать интерфейсы. Если у вас такого понимания нет, то сначала почитайте документацию.

Я буду объяснять SOLID самым простым способом, так что новичкам легче будет разобраться. Будем рассматривать принципы один за другим.
Читать дальше →

Синонимы, которые сбивают с толку новичков: say, tell, speak, talk

Reading time4 min
Views24K
Английский язык, как и русский, богат на многозначные слова. А еще довольно часто бывает так, что в русском мы используем одно многозначное слово, а в английском для каждого значения отводится отдельное слово. Со временем студенты, конечно, запоминают разницу. Если же вы только начали изучать язык, то специально для вас мы подготовили серию статей о синонимах, в использовании которых новички ошибаются чаще всего. Давайте вместе разберемся, чем же эти слова друг от друга отличаются и как употреблять их в речи правильно.

image
Читать дальше →

Где больше платят программистам. Сравниваем 22 страны

Reading time3 min
Views140K
Пару месяцев назад я постила сводную таблицу-сравнение под названием «Лучшая страна для программиста». В ней было 9 стран. Статья была горячо воспринята и в силу некоторых ошибок в ней, и в силу желания читателей получить сходные данные по другим странам. Я обещала доделать таблицу. Сказано – сделано.

В этой статье 22 страны сравниваются по следующим параметрам:

1. Зарплаты программистов
2. Налоги
3. Стоимость жизни (аренда жилья, коммунальные услуги, продукты, транспортные расходы)
4. Развитость рынка IT
5. Социальное обеспечение
Читать дальше →

Интервью с «главным по мозгам Алисы»

Reading time14 min
Views17K
RUVDS совместно с Хабром начинают проект, состоящий из серии интервью с интересными, на наш взгляд, людьми в IT-среде. Сегодня мы представляем интервью с руководителем группы разработки диалоговых систем в Яндексе, Борисом Янгелем.

Почему Алиса, а не Макс, в чем был не прав бывший министр связи Никифиров, зачем запускать Tesla в космос. Ответы в видео и тексте под катом.

Интервью помогли подготовить Лера Негря и редактор Хабра Николай Землянский.


Внедрение зависимостей в Go

Reading time9 min
Views31K

Недавно я создал небольшой проект на языке Go. После нескольких лет работы с Java я был сильно удивлён тем, как вяло внедрение зависимостей (Dependency Injection, DI) применяется в экосистеме Go. Для своего проекта я решил использовать библиотеку dig от компании Uber, и она меня по-настоящему впечатлила.

Я обнаружил, что внедрение зависимостей позволяет решить множество проблем, с которыми я сталкивался в работе над Go-приложениями: злоупотребление функцией init и глобальными переменными, чрезмерная сложность настройки приложений и др.

В этой статье я расскажу об основах внедрения зависимостей, а также покажу пример приложения до и после применения этого механизма (посредством библиотеки dig).
Читать дальше →

Уходим глубже в Underground: история одного экстремального дизайна игры

Reading time6 min
Views27K


Хорошо размахнувшись, инженер производил мощный удар кулаком сверху монитора. Раздавался треск и… монитор оживал! Тогда, 30 лет назад, когда в свои десять лет я посещал вечерние занятия школы юных программистов в университете, только инженер имел право так чинить мониторы. Только он знал, в какое место и с какой силой приложить компьютерную технику, чтобы она ожила и мы, дети, которым повезло попасть в школу программистов, продолжили, счастливые, писать свои строчки кода.
Посмотреть дизайн

«Невозможная» ретро игра

Reading time3 min
Views30K


Иногда текущего уровня развития видеокарт, шлемов VR и другого «железа» не хватает для реализации задуманной игры. Технологии отстают от идей. Но бывает и обратная ситуация: концепция игры выглядит очень заманчиво, хочется поиграть прямо сейчас, а вот технологий для ее реализации уже почти нет.

Позвольте поделиться «невозможной» игрой для матричных принтеров, в которую очень хочется сыграть.
Читать дальше →

15 советов по работе с Github

Reading time8 min
Views63K

Я 10 лет разрабатываю ПО, участвовал в нескольких open source-проектах и в многочисленных не-open source-проектах, работал в больших и малых командах, и везде мы использовали Github в качестве репозитория версионирования.

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

Чем Figma лучше Photoshop для разработки веб-интерфейсов

Reading time5 min
Views65K


Огромное количество дизайнеров во всем мире в качестве инструмента для разработки веб-интерфейсов использует Adobe Photoshop. В этом нет ничего удивительного — Photoshop способен справиться практически с любой задачей, которая имеет отношение к графике.

Но как и все комбайны, инструмент от Adobe в некоторых случаях уж слишком неповоротлив и сложен. При решении специфических задач, включая разработку веб-интерфейсов, можно попробовать и другие инструменты. Среди прочих можно назвать Sketch, Adobe XD и Figma. Сейчас предлагаем поговорить как раз о последнем, остальные обсудим в следующих публикациях.
Читать дальше →

Пишем простой менеджер кеша в памяти на Go

Reading time5 min
Views31K

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

Читать дальше →

Information

Rating
Does not participate
Registered
Activity