Pull to refresh
6
0
Александр Голдобин @Geminix

Fullstack developer

Send message

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

Level of difficultyMedium
Reading time27 min
Views16K

В этой статье рассмотрены все паттерны проектирования из "Банды четырёх" с примерами на языке программирования C#. Для самых терпеливых имеются дополнительные паттерны.

Это первая статья из серии "Сто паттернов для разработки корпоративных программ". Следующие статьи будут посвящены паттернам из книг Мартина Фаулера и Роберта Нистрема.

Читать далее
Total votes 18: ↑12 and ↓6+6
Comments20

Что нового в .NET 8?

Reading time4 min
Views31K

.NET 8 вышел в релиз, значит можно начинать переносить свои проекты на новую версию. В этой статье мы рассмотрим новые улучшения и фишки: C# 12, производительность, Native AOT, GC, новые типы, направленные на повышение производительности, NuGet Audit и прочее.

Читать далее
Total votes 35: ↑35 and ↓0+35
Comments33

Проблемы unsafe кода C#

Reading time5 min
Views13K

Случайно найдя в интернете алгоритм разворота строки с использованием unsafe кода в C# я решил протестировать, что еще интересно можно сделать используя указатели. В итоге собрал для вас 5 самых интересных примеров в этой статье.

Вы узнаете как изменить значение константы во время runtime.

Читать далее ->
Total votes 31: ↑28 and ↓3+25
Comments10

Миграция с vue-class-component на vuejs/composition-api

Reading time12 min
Views5.9K

В статье хочу поделиться опытом переписывания существующих классовых компонентов vue на новый синтаксис vue-composition-api.

Немного о нашем стеке.

Наше приложение написано на nuxt2 + vue-class-components + typescript. Из-за стека переезд на новый nuxt затруднился тем, что прежде чем сменить версию nuxt со 2 на 3 нам нужно переписать все наши компоненты. Тут нас очень спасла библиотека vuejs/composition-api и nuxtjs-composition-api

В статье разберем случаи от самых примитивных до менее примитивных.

Стоит сразу отметить, что в composition-api вся магия происходит внутри метода setup , который включает в себя 2 хука жизненного цикла vue компонента: beforeCreate и created
Помимо основных примеров я покажу как будет работать типизация в тех или иных кейсах.

* Все названия переменных вымышлены и не используются на продуктиве)

Поехали!

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments21

Упрощаем мониторинг и управление контейнерами Docker при помощи инструментов CLI

Reading time6 min
Views11K

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

В этой статье мы сосредоточимся на некоторых простых и эффективных инструментах CLI, которые помогут вам контролировать и управлять контейнерами Docker.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments0

Замыкания в C#

Reading time2 min
Views62K
Перед прочтением статьи, ответьте на следующий вопрос — что будет напечатано, после исполнения следующего кода?

P p = Console.WriteLine; // P объявлен как delegate void P();
foreach (var i in new [] { 1, 2, 3, 4 }) {
  p += () => Console.Write(i);
}
p();
Элементарно?
Total votes 65: ↑53 and ↓12+41
Comments43

Пользовательские шаблоны и расширения для Visual Studio под проект (Часть 2: шаблоны проектов)

Reading time3 min
Views5.2K

В прошлый раз я рассуждал на тему расширений и шаблонов, что их можно создавать не только для общего пользования, но и для нужд конкретного проекта. А так же показал, как легко можно создать шаблон элемента (класса, например). Вы можете ознакомиться с предыдущей статьей по этой ссылке. Здесь же мы поговорим про создание шаблона проекта.

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments7

Nuxt.js app от UI-кита до деплоя. Часть 3: Мультиязычность

Reading time7 min
Views4.2K
Привет!

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


Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments0

Android + Redux = <3

Reading time13 min
Views8.2K

Привет! Меня зовут Виталий Сулимов, я Android-разработчик в компании Wheely, и сегодня я бы хотел поговорить с вами об архитектуре мобильных приложений. А именно о том, как мы в компании применили Redux-архитектуру к двум нашим приложениям и что из этого вышло.

Дисклеймер #1

Я разрабатываю коммерческие Android-приложения с 2016-го года, начинал с классического в то время MVC, потом был MVP, библиотека Moxy от ребят из Arello Mobile, Clean Architecture и вот теперь Redux. Мое мнение — идеальной и единственно правильной архитектуры не существует. Любая из них будет набором компромиссов, начиная от особенностей интеграции с самой платформой и заканчивая простотой, расширяемостью и возможностью написания тестов. То, что отлично подходит под наши приложения, может оказаться абсолютно непригодным для вашего проекта, и наоборот. Цель данной статьи — показать еще один способ написания Android-приложений.

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments16

Ликбез по Navigation Component: тем, кто пропустил все туториалы

Reading time3 min
Views5.4K

Эта история для тех, кто до сих пор не в курсе про Navigation Component. Тут мы пробежимся по основным элементам библиотеки и посмотрим, как это все выглядит.

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments0

Современный стартовый HTML-шаблон

Reading time2 min
Views26K


Доброго времени суток, друзья!

Позвольте представить вам мой новый проект — современный стартовый HTML-шаблон.

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

  • Все meta и link-теги (общие, Microsoft, Facebook, Twitter, IOS, Android, структурированные данные — Schema.org и JSON-LD, а также парочка тегов, связанных с безопасностью)
  • Пример использования HTML5-тегов
  • Пример использования CSS3-свойств
  • Пример использования CSS-модулей
  • Пример использования JavaScript-модулей
  • Файл «manifest.json»
  • Сервис-воркер общего назначения (сначала кэш, затем сеть)
  • Файл «robots.txt»
  • Файл «sitemap.xml»
  • Файл «browserconfig.xml»
  • Файл ".gitignore"
  • Пример Express.js-сервера, устанавливающего заголовки, связанные с безопасностью и сжатием, и возвращающего файлы по запросу
  • Пример креативной страницы ошибки 404 (страница не найдена, креатив не мой)
  • и многое другое

Официальный сайт: moderntemplate.site.

Код проекта находится здесь.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments20

Навигация для Android с использованием Navigation Architecture Component: пошаговое руководство

Reading time6 min
Views38K
Попробуем, пользуясь официальным руководством и примерами кода, построить работающую систему навигации для будущего многоэкранного приложения в соответствии со стандартами Navigation Architecture Component. Статья включает следующие разделы:

Часть 1. Подготовительные работы
— 1.1. Создание проекта
— 1.2. Зависимости (Dependencies)
— 1.3. Страницы: создание фрагментов
— 1.4. Адреса: файл ресурсов типа «Navigation»
— 1.5. Фрейм: виджет NavHostFragment

Часть 2. Элементы навигации
— 2.1. Навигация с помощью кнопок
— 2.2. Боковое меню (Drawer)
— 2.3. Панель инструментов: Toolbar вместо ActionBar
— 2.4. Нижнее меню (Bottom Navigation)
— 2.5. Всплывающее меню (Overflow Menu)

Краткие выводы и ссылка на github
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments5

12 вопросов, которые стоит задать потенциальным работодателям

Reading time8 min
Views17K

Я только что завершил шестинедельный процесс трудоустройства на должность middle-senior разработчика на рынке, где сейчас ведется активная охота за талантами (Амстердам). Иными словами, я побывал на куче собеседований. Чтобы аккуратно разведать, какие компании мне больше всего подходят, я старался задавать побольше вопросов. Тут нужно найти правильный баланс, исходя из своих потребностей и того, кто с вами общается.

Если вы джуниор в поисках работы, то вы, возможно, придете к выводу, что вас на самом-то деле мало интересует, что вам ответят на все приведенные ниже вопросы — вам бы хоть куда-нибудь устроиться. Но даже в этом случае, решите для себя, какие моменты для вас будут стоп-сигналами и спрашивайте с расчетом на то, чтобы всплыла нужная информация. Если есть что-то, что может вас заставить отказаться от вакансии, лучше узнать об этом до того, как примете предложение о работе.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments10

Coroutines :: опыт практического применения

Reading time9 min
Views33K
В этой статье расскажу о том, как работают корутины и как их создать. Рассмотрим применение при последовательном, параллельном выполнении. Поговорим об обработке ошибок, отладке и способах тестирования корутин. В конце я подведу итог и расскажу о впечатлениях, которые остались после применения данного подхода.

Статья подготовлена по материалам моего доклада на MBLT DEV 2018, в конце поста — линк на видеозапись.

Последовательный стиль


Total votes 27: ↑27 and ↓0+27
Comments3

Доступ к linux серверу с помощью Telegram-бота на Python

Reading time4 min
Views30K
Довольно часто происходят ситуации, когда доступ к серверу нужен здесь и сейчас. Однако, не всегда подключение по SSH является наиболее удобным способом, потому что под рукой может не оказаться SSH клиента, адреса сервера или связки «пользователь/пароль». Конечно, есть Webmin, который упрощает администрирование, но он также не даёт моментальный доступ.
Читать дальше →
Total votes 27: ↑20 and ↓7+13
Comments20

Unity: процедурное редактирование Mesh

Reading time16 min
Views13K
Преобразование моделей «на лету» — нередкая практика в симуляции физики деформаций, а также в играх с динамически генерируемым и изменяемым контентом. В таких случаях удобно применять методы процедурного редактирования и создания геометрии. Последние часто позволяют сэкономить заветные байты при передаче подгружаемых из сети данных. Кроме того — это весело!

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

Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments9

7 полезных советов для тех, кто использует Room

Reading time7 min
Views10K

7 полезных советов для тех, кто использует Room


Room — это уровень абстракции поверх SQLite, который упрощает организацию хранения данных. Если вы ещё мало знакомы с Room, то посмотрите эту вводную статью:


7 шагов к использованию Room. Пошаговое руководство по миграции приложения на Room

А в этой статье я хотел бы поделиться несколькими советами о том, как максимально эффективно использовать Room.

Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments1

Тестирование с помощью JUnit 5 на Kotlin

Reading time8 min
Views46K
В этой статье будут рассмотрены основные возможности платформы JUnit 5 и приведены примеры их использования на Kotlin. Материал ориентирован на новичков в Kotlin и/или JUnit, однако, и более опытные разработчики найдут интересные вещи.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments7

[По докам] Flutter. Часть 1. Для Android разработчиков

Reading time25 min
Views41K
Про Flutter написано уже много статей. С каждым месяцем он становится всё популярнее. Поэтому я решил интерпретировать официальную документацию Flutter в лаконичный формат «вопрос — ответ». Думаю, многие, как и я, не имеют достаточно свободного времени для подробного изучения документации фреймворка, с которым они ещё не работают.

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


Читать дальше →
Total votes 42: ↑42 and ↓0+42
Comments12

Information

Rating
Does not participate
Location
Барнаул, Алтайский край, Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer
Middle
Git
.NET
Docker
Vue.js
TypeScript