Обновить
8K+
100
dotneter@dotneter

Разработчик

7
Рейтинг
7
Подписчики
Отправить сообщение

4 подхода к использованию LLM в разработке

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

Развитие LLM значительно изменило процесс разработки ПО. Однако, если присмотреться к тому, как разработчики на самом деле используют эти инструменты, картина оказывается весьма разнообразной. Одни применяют ИИ как продвинутое автодополнение, другие ожидают, что он создаст целое приложение по одному промпту.

Чтобы систематизировать подходы к ИИ-программированию, воспользуемся простой моделью. Вместо того чтобы воспринимать "кодинг с ИИ" как единый монолитный процесс, мы можем отобразить его на матрице 2×2, основанной на двух ключевых осях:

Вовлеченность человека в код: Пишете ли вы код вручную (читаете, редактируете и проводите код-ревью) или работа с ним полностью делегирована LLM.

Метод валидации: Проходит ли проверка результатов неформально (покликать в приложении, оценить интерфейс на глаз, убедиться, что вроде работает) или формально (автотесты, проверка типов, строгие спецификации).

Читать далее

Исполняемые спецификации — эффективная работа с кодинг-агентами

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели6.3K

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

Хороший подход для работы с агентами базируется на принципах BDD (Behavior-Driven Development). Нам важно не то, как реализована задача, а как ведет себя система. Лучший способ передать это поведение машине и легко проверить человеку - исполняемые спецификации.

Читать далее

Структурно-ориентированная кодовая база для агента

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели6.7K

При первом запуске агент не знает структуру проекта. Из-за этого возникают проблемы:

Читает слишком много файлов и быстро расходует контекст.

Или, наоборот, не находит нужные файлы и места в коде.

Читать далее

Фильтр комментариев по оценке

Время на прочтение1 мин
Охват и читатели2K

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

Давным давно мной уже был написан юзер скрипт, упрощающий поиск комментариев, и в связи с карантином дошли руки его немного причесать и оформить в виде расширений для браузеров Google Chrome и Mozilla Firefox. Расширение выводит статистику всех оценок в комментариях. Кликнув на одну из положительных оценок, подсвечиваются все комментарии с оценкой равной или выше, а при клике на отрицательную — равной или ниже. Повторный клик на оценку снимает фильтрацию и возвращает дефолтное дерево комментариев.
Читать дальше →

Заменяем Redux c помощью Observables и React Hooks

Время на прочтение8 мин
Охват и читатели18K

Управление состоянием — одна из важнейших задач, решаемых в разработке на React. Было создано множество инструментов в помощь разработчикам для решения этой задачи. Наиболее популярным инструментом является Redux — небольшая библиотека, созданная Дэном Абрамовым, и предназначенная помочь разработчикам использовать паттерн проектирования Flux в их приложениях. В этой статье мы разберем, действительно ли нам нужен Redux, и посмотрим, как мы можем заменить его более простым подходом, в основе которого лежат Observable и React Hooks.

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

Управление состоянием приложения с RxJS/Immer как простая альтернатива Redux/MobX

Время на прочтение6 мин
Охват и читатели6.3K
"Вы поймете, когда вам нужен Flux. Если вы не уверены, что вам это нужно, вам это не нужно." Пит Хант


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


state = {value: 0} 
increase() { 
  state.value += 1 
} 
decrease() {
  state.value -= 1
}

Сходу кажется, что такое решение может обеспечить MobX, так почему бы им и не воспользоваться? Поработав с MobX некоторое время, для себя пришел к выводу, что лично мне проще оперировать последовательностью иммутабельных состояний (наподобие Redux), чем логикой мутабельного состояния (наподобие MobX), да и его внутреннюю кухню я бы не назвал простой.


В общем, захотелось найти простое решение для управления состоянием, в основе которого лежала бы иммутабельность, с возможностью применять его в Angular\React и реализованное на TypeScript. Беглый обзор на просторах github подходящего решения не выдал, поэтому возьмем RxJS/Immer и попробуем сделать свое.

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

Избегание ада с помощью монад

Время на прочтение4 мин
Охват и читатели14K

Мы как программисты иногда попадаем в "программистский ад", место где наши обычные абстракции не справляются с решением ряда повторяющихся проблем.


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


Ад проверки на null


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


Такие функции обычно приводят в глубоко вложенному и сложно читаемому коду с чрезмерным количеством синтаксического шума.


var a = getData();
if (a != null) {
  var b = getMoreData(a);
  if (b != null) {
     var c = getMoreData(b);
     if (c != null) {
        var d = getEvenMoreData(a, c)
        if (d != null) {
          print(d);
        }
     }
  }
}
Читать дальше →

Создание приложения для тренировки мозга. Выбор технологии и приемы геймификации

Время на прочтение4 мин
Охват и читатели6.1K

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


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


И пока идея полностью не созрела, начался процесс поиска технологий для реализации версии сайта 2.0, плюс был интерес по изучать новые технологий и языки

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

Тренировка мозга и ее геймификация

Время на прочтение5 мин
Охват и читатели41K

В статье попытаюсь рассмотреть два типа мышления и возможные варианты их тренировки и геймификации. Мышление по типу решаемой задачи можно разделить на так называемое продуктивное и репродуктивное.
Продуктивное, оно же творческое мышление характеризуется созданием чего то качественно нового, в контексте решения задач (problem solving) иcпользуется для решения сложных, до этого не решаемых человек задач. Репродуктивное же мышление наоборот, используется для задач у которых уже известна схема решения, и выполнение по сути зависит только от базовых когнитивных навыков человека.

Творческое мышление


Представим задачу стоящую перед творческим мышлением в виде абстрактной двухмерной плоскости, на которой где-то находятся несколько точек приемлемых решений. Перед человеком стоит проблема найти одну из таких точек-решений, но сложность состоит в невозможности перебрать все возможные варианты, поэтому в большинстве случаем на помощь приходит озарение. Классическая схема решения творческой задачи состоит из стадий
1) Подготовка — формулирование задачи
2) Инкубация — временное отвлечение от задачи
3) Озарение — появление интуитивного решения.
Читать дальше →

Превращаем статический сайт в мобильное приложение с помощью jQuery Mobile и PhoneGap

Время на прочтение5 мин
Охват и читатели114K

После приобретения телефона на базе Android, возникла задача сделать из сайта brainexer мобильное приложение. Выбор пал на jQuery Mobile и PhoneGap. До этого никаких познаний в обрасти мобильной разработки не было, поэтому пришлось осознать некий пласт новой информации, выжимкой из которого я бы и хотел поделиться. В итоге статья представляет из себя небольшой quick start — как из пачки html файлов получить приложение опубликованное в Google Play.
Читать дальше →

Продолжаем тренировать мозг. Добавляем соревнования

Время на прочтение2 мин
Охват и читатели14K

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

Упражнения для тренировки мозга

Время на прочтение3 мин
Охват и читатели127K

В силу склада ума или давнего увлечения скорочтением, мнемотехникой и прочим, у меня был повышенный интерес к играм состоящим из набора упражнений для тренировки мозга(BrainChallenge, Dr.Kawashima и др.). Переиграв практически во все что было на десктопе и nds, появилось желание использовать такие игры для каждодневных тренировок, но для этого они не совсем подходят(в тексте объясню почему). Поэтому на досуге решил написал небольшой сайт с набором такого рода упражнений.
Читать дальше →

Легкая прогулка от функтора через монаду к стрелке

Время на прочтение8 мин
Охват и читатели28K

Давайте совершим прогулку по цепочке Pointed, Functor, Applicative Functor, Monad, Category, Arrow, в процессе которой я попытаюсь показать что все это придумано не для того что бы взорвать мозг, а для решения вполне реальных проблем, притом существующих не только в haskell. Большая часть кода написана на C#, но думаю и без его знания можно будет понять что к чему.
Читать дальше →

Linq To Tasks и монада продолжения

Время на прочтение6 мин
Охват и читатели4.7K
После анонса C# 5.0 с его async и await, у меня появился небольшой интерес к асинхронному программированию, копание в сторону которого и послужило возникновению данного текста.
В процессе чтения статьи вы узнаете/омните.
  • Что есть монада на примере Maybe.
  • Что такое CPS и монада продолжения.
  • Как это связать с классом Task из TPL.

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

Javascript fluent html builder

Время на прочтение3 мин
Охват и читатели3.9K
Идея генерации html с помощью javascript меня не отпустила. Напомню eе суть с помощью jQuery
$("<div>", {"class":"something",id:10})

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

Создаем за 10 минут PivotViewer контента сайта на примере Хабрахабр

Время на прочтение3 мин
Охват и читатели1.2K
Для достижения поставлено цели на нужны три вещи.
1) Картинки в формате DeepZoom.
2) Контент в виде xml.
3) Силверлайт контрол который все это будет отображать.

Для примера будем использовать последние 3000 статей на Хабрахабр с картинкой.
Одолев все пункты получим pivotviewer.narod.ru/habr/index.html
image

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

HabrTree — скрипт сворачивающий по оценке

Время на прочтение1 мин
Охват и читатели3.2K
Заметил за собой что в больших или малоинтересных обсуждениях читаю только комментарии с положительной оценкой. Что бы упростить себе это занятие был написан скрипт.

userscripts.org/scripts/show/71427

После установки появляется следующее.

image
Первые две кнопки свернуть, развернуть все. Далее кликаем на оценку и сворачиваем все неинтересные комментарии, оставшиеся будут подсвечены.

PS Если что то не работает, попробуйте установить новую версию.

Убран инпут спасибо vrent

Информация

В рейтинге
1 011-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность