Как стать автором
Обновить
1
0
Антон Чигин @ChiginAV

Программист 1С

Отправить сообщение

Паттерн MVVM и страничная навигация

Время на прочтение16 мин
Количество просмотров55K

Применение страничной навигации достаточно актуальная задача для настольных WPF-MVVM приложений.
Разномастных руководств по организации такой навигации в сети достаточно.
И, конечно, Хабрахабр не исключение (имеются статьи раз и два).
Взглянув на первую статью Вы узнаете про NavigationService и возможность пользоваться Hyperlink.
Если перейдете по второй ссылке, то узнаете как пользоваться NavigationService в так называемом «Code Behind».
Таким образом, решения полного в этих статьях не представлено (на мой взгляд).
Хочется заполнить пробел и представить Вашему вниманию, как мне кажется, вполне рабочее решение.
Абсолютно не претендую на законченный компонент для организации страничной навигации.
Буду благодарен за полезные комментарии, поправки и дополнения.
Рад буду, если кому-то моя реализация навигатора окажется полезной.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии1

Паттерны для новичков: MVC vs MVP vs MVVM

Время на прочтение6 мин
Количество просмотров783K
Добрый день, уважаемые коллеги. В этой статье я бы хотел рассказать о своем аналитическом понимании различий паттернов MVC, MVP и MVVM. Написать эту статью меня побудило желание разобраться в современных подходах при разработке крупного программного обеспечения и соответствующих архитектурных особенностях. На текущем этапе своей карьерной лестницы я не являюсь непосредственным разработчиком, поэтому статья может содержать ошибки, неточности и недопонимание. Заинтригованы, как аналитики видят, что делают программисты и архитекторы? Тогда добро пожаловать под кат.
Читать дальше →
Всего голосов 45: ↑40 и ↓5+35
Комментарии36

Инфраструктура команд для вызова пользователем действий в шаблоне MVVM

Время на прочтение10 мин
Количество просмотров10K
Представим типичный пользовательский интерфейс. Есть несколько элементов управления, которые запускают некоторые повторяемые (за время жизни приложения) действия разной сложности. Чтобы сложные действия, такие как обращение к различным носителям, обращение к сети или сложное вычисление, не снижали отзывчивость интерфейса, они должны быть асинхронными. Дополнительно могут быть элементы управления, отменяющие асинхронно запущенное действие. Действие имеет свойство состояния (неактивно, запущено, завершено успешно, завершено с ошибкой, отменено), которое тем или иным образом отображается пользователю. Принятый в WPF, Silverlight и WinPhone шаблон проектирования MVVM диктует, чтобы такое «действие» было частью модели представления, давая возможность вызывать сервисы модели из пользовательского интерфейса без создания между ними жёсткой связи. К сожалению, такое «действие» в базовой библиотеке классов не реализовано. Ближайшие имеющиеся в библиотеке сущности, такие как задачи System.Threading.Tasks.Task, команды System.Windows.Input.ICommand и делегаты System.Delegate, не подходят: задачи всегда одноразовые и не могут представлять повторяемое действие, делегаты и команды не поддерживают отмену и не содержат свойств состояния, а команды вообще не могут быть асинхронными. Далее я предлагаю решение в виде небольшой библиотеки классов, дающей возможность легко использовать описанные «действия» в ваших приложениях.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии11

Часть 2: MVVM: полное понимание (+WPF)

Время на прочтение22 мин
Количество просмотров85K
image

В этой статье в качестве примера у нас будет программа чуть посложнее, а именно — торговый автомат, реализация которого часто встречается в качестве тестового задания до собеседования. Будут рассмотрены взаимодействие нескольких View с одним VM и наоборот, будет показан подход «View first» и будет показан не итоговый код, с рассказом какая часть для чего нужна (ссылка для скачивания кстати Vending Machine (программный код), а будет продемонстрирован весь процесс создания и, самое главное, последовательный ход мысли.

Но перед этим я постараюсь еще раз ответить на вопрос, который обычно не задают люди, имеющие опыт отладки неструктурированных проектов, а именно: «Так зачем все-таки нужен паттерн MVVM?»

Если формально и коротко, то паттерн MVVM используется в первую очередь для разделения ответственности, для повышения читабельности, управляемости, поддерживаемости и тестируемости кода. Программный продукт состоит из модели (доменной модели и бизнес-логики) и инфраструктурного кода в соотношении, допустим, 20% на 80%. Инфраструктурный код должен быть простым, понятным, чуть ли не автоматным — как Scaffolding. А вот модель…
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии40

MVVM: полное понимание (+WPF) Часть 1

Время на прочтение8 мин
Количество просмотров284K
В настоящей статье задействован мой опыт доведения некоторого числа студентов до полного и окончательного понимания паттерна MVVM и реализации его в WPF. Паттерн описывается на примерах возрастающей сложности. Сначала теоретическая часть, которая может использоваться безотносительно конкретного языка, затем практическая часть, в которой показано несколько вариантов реализации коммуникации между слоями с использованием WPF и, немножко, Prism.

Зачем вообще нужно использовать паттерн MVVM? Это ведь лишний код! Написать тоже самое можно гораздо понятнее и прямолинейнее.

Отвечаю: в маленьких проектах прямолинейный подход срабатывает. Но стоит ему стать чуть больше — и логика программы размазывается в интерфейсе так, что потом весь проект превращается в монолитный клубок, который проще переписать заново, чем пытаться распутать. Для наглядности можно посмотреть на две картинки:
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии53

Как в IntelliJ IDEA написать и собрать в исполняемый .exe файл приложение на JavaFX

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров11K

При кажущейся простоте создания приложения на JavaFX (особенно с помощью JavaFX Scene Builder 2.0 и бесплатных видео-уроков на различных ресурсах), написание функционала программы – это только половина пути. Программа должна работать, жить своей жизнью самостоятельно, без привязки к среде разработки. И, как показывает мой личный опыт, при сборке проекта и выпуске его в «большой мир» приходится преодолевать немало терний.

Надеюсь, что моя статья поможет кому-нибудь избежать ошибок, найти ответы на вопросы или просто сразу пойти правильным путем (например, создавать обычный maven-проект на Java-8, вручную прописывая в pom.xml зависимости и способ сборки, и всегда указывать на латинице имена учетных записей, директорий в своей операционной системе).

Читать далее
Всего голосов 7: ↑5 и ↓2+3
Комментарии24

Программирование JavaFX: использование SceneBuilder

Время на прочтение6 мин
Количество просмотров12K


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

Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии4

JavaFX: класс Controller и fx:id в FXML

Время на прочтение9 мин
Количество просмотров15K


Мне кажется, не оправданно много полезных статей не только не посвящают и двух слов самому животрепещущему вопросу при начале работы с JavaFX, но и посвятив, все равно не раскрывают его полностью. А вопрос возникает следующий: как наладить связь ваших node по их fx:id и вашего кода. Как использовать их в разных частях кода, чтобы ссылаться на ваш программный интерфейс? Вот на это, я и постараюсь ответить под катом

Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии3

«Входить в IT неспеша» или как стать Middle Java Backend разработчиком минуя ступень Junior

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров39K

Статья о том, как шаг за шагом при дефиците свободного времени обучиться и устроиться на работу сразу Middle Java разработчиком перескочив через Junior ступеньку, основанная на личном опыте, и о том, как мне это помогло, когда сразу после трудоустройства пришлось тянуть проект практически в solo.

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

Давай-ка разберёмся с этим
Всего голосов 22: ↑17 и ↓5+12
Комментарии80

Лучшие языки программирования для изучения в 2023 году | Голосование

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров123K

Программирование постоянно развивается, а с ним и языки программирования, которые используются разработчиками. Чтобы быть успешным в мире IT, важно выбрать актуальный и востребованный язык программирования для изучения. Мы решили провести голосование, чтобы выяснить, какие языки программирования считаются самыми актуальными и популярными, а какие самыми неактуальными среди представленных в 2023 году по версии пользователей Habr.

Читать далее
Всего голосов 53: ↑43 и ↓10+33
Комментарии224

Git для новичков (часть 2)

Время на прочтение4 мин
Количество просмотров129K

В прошлой статье, я рассказал, что такое Git, как его установить и выложить свой код на GitHub. Сегодня мы поговорим про работу в команде над одним проектом. И как это устроено в Git.

В данной статье, вся работа с Git будет через командную строку.

Читать далее
Всего голосов 10: ↑6 и ↓4+2
Комментарии8

Git для новичков (часть 1)

Время на прочтение5 мин
Количество просмотров578K

Git - это консольная утилита, для отслеживания и ведения истории изменения файлов, в вашем проекте. Чаще всего его используют для кода, но можно и для других файлов. Например, для картинок - полезно для дизайнеров.

С помощью Git-a вы можете откатить свой проект до более старой версии, сравнивать, анализировать или сливать свои изменения в репозиторий.

Читать далее
Всего голосов 18: ↑11 и ↓7+4
Комментарии10

Лучшие плагины IntelliJ IDEA

Время на прочтение5 мин
Количество просмотров80K


Key promoter X


Использование сочетаний клавиш вместо мыши может значительно повысить производительность. С таким количеством функций, которые предлагает IDEA, это может быть пугающим и трудным для изучения всех быстрых клавиш. К счастью, есть плагин под названием Key Promoter X, который может вам помочь.

Идея проста: всякий раз, когда вы используете мышь для вызова команды в вашей IDE, появляется всплывающее окно, которое сообщает вам, каково сочетание клавиш для этого действия.
Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии43

Полное практическое руководство по Docker: с нуля до кластера на AWS

Время на прочтение39 мин
Количество просмотров1.6M



Содержание



Вопросы и ответы


Что такое Докер?


Определение Докера в Википедии звучит так:


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



Ого! Как много информации.

Читать дальше →
Всего голосов 125: ↑124 и ↓1+123
Комментарии44

Партицированная дисциплина программиста в 1С

Время на прочтение8 мин
Количество просмотров3.9K

Почему при росте объемов базы 1С все становится медленней, даже если все индексы правильно сделаны? В статье на простом примере с регистром сведений показана причина и как этого избежать. Кто виноват больше 1С или MS SQL решать Вам :)

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии4

Формула счастья программиста — Самый полный список требований к работе

Время на прочтение15 мин
Количество просмотров20K

Как выглядит идеальная работа программиста? Что делает делает хорошую работу хорошей? Хотя бы не плохой?

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

А сталкивались ли вы с такой ситуацией?

Читать далее
Всего голосов 20: ↑18 и ↓2+16
Комментарии12

Как стать профессиональным веб-разработчиком: практическое руководство

Время на прочтение12 мин
Количество просмотров652K

Дорога длинна и трудна, но интересна и полезна!

Статья задумывалась как практическое руководство для желающих стать профессиональным веб-разработчиком. Я уже более 20 лет пишу код для веба. Я ежедневно работаю с веб-разработчиками и помогаю им. В статье я опишу, что вам нужно выучить, когда вам нужно это выучить и где взять информацию (чаще всего даже бесплатно). Затем я дам совет по получению реального опыта, и что самое важное – по получению денег за написание кода.

По статье разбросано множество ссылок на бесплатные и важные ресурсы. Для простоты я собрал их в PDF и разбил по категориям. Мне не платят за упоминания сайтов, ссылки на которые я привёл – я всего лишь хочу порекомендовать вам лучшие ресурсы, чтобы помочь вам достичь вашей цели.

Что нужно помнить:

1. Статью разрешается пролистывать

Руководство может помочь вам вне зависимости от вашего положения на дороге к профессиональной разработке. Прокрутите его к тому заголовку, который лучше всего описывает ваше сегодняшнее положение, и читайте оттуда. Если вы только начали этот путь, или пока размышляете об этом – последуйте совету Короля из «Алисы в стране чудес»:

Начните с начала, и продолжайте, пока не дойдёте до конца; и там уже остановитесь.
Читать дальше →
Всего голосов 49: ↑38 и ↓11+27
Комментарии129

Как быстро обновить много серверов 1С

Время на прочтение7 мин
Количество просмотров11K

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

После победы над клиентами хочется разобраться с серверной частью. В интернете есть достаточное количество статей на тему, как обновить платформу 1С на клиентских машинах.

С серверной частью все ПОЧТИ тоже самое. Вот про это ПОЧТИ и хочу рассказать.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии4

Удаленная работа в 1С на Linux

Время на прочтение3 мин
Количество просмотров19K

Почему удалённая и на Linux? Удалённая — потому что нет необходимости устанавливать клиентское приложение на каждое рабочее место в офисе, настраивать списки баз и обновлять ПО. На Linux — потому что бесплатно. Если и будут затраты, то это будут услуги инженера по установке и настройке ПО. За «1С» придётся платить в любом случае.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии12

«РИБ в 1С простыми словами» и «Как подчиненную базу 1С сделать самостоятельной»

Время на прочтение4 мин
Количество просмотров39K

Оговорка: Предполагается, что читатель знает что такое синхронизация баз в 1С.

ПЕРЕД ЛЮБЫМИ ОПАСНЫМИ ДЕЙСТВИЯМИ/ОПЕРАЦИЯМИ С БАЗАМИ 1С ВСЕГДА ДЕЛАЙТЕ РЕЗЕРВНУЮ КОПИЮ

И вообще всегда делайте резервную копию.

Резервных копий много не бывает.

В любой непонятной ситуации делайте резервную копию.

=======================================================================

Механизм РИБ — механизм распределенных информационных баз - это когда у вас есть главная база и подчиненная(ые). Главная база может быть только одна, подчиненных может быть много. Каждая подчиненная база может иметь свои подчиненные базы, для которых она будет главной.

Вот посмотрим на картинку из первой ссылки по запросу в Яндексе:

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии4
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Миасс, Челябинская обл., Россия
Дата рождения
Зарегистрирован
Активность