Анонсик


Хочу поделиться мыслями и планами на ближайшее время.
До конца недели я хочу накидать статью «Как переехать в Киев айтишнику«. Ужасные потрясения которые выпали на нашу долю делают этот вопрос даже ещё актуальнее чем раньше. Очень много людей вынужденны были бежать из своих городов захваченных оккупантами.
Я давно и публично всех айтишников зазывал перемещаться в Киев из других городов. Это относительно комфортный для проживания город, с преимущественно нормальным климатом, с развитой IT индустрией и профессиональной тусовкой, хорошей природой, адекватными жителями, «вечный город». По статистике опросов DOU здесь сосредоточено больше половины всех айтишников Украины.
Я хочу объяснить зачем нужно сюда переезжать, мотивировать, подсказать как искать работу и квартиру и тому подобные приколы.
Если  у вас есть свой опыт, поделитесь пожалуйста им — напишите в своём блоге или пост в соцсетях а я обязательно сделаю на вас ссылку.

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

Также хочу сделать небольшой поисковик плагинов для Grails по Github — чтобы сразу можно было оценить качество проекта: количество старов, форков, комитов, тестов и других метрик по которым можно будет определить стоит ли вообще с ним связываться.
В идеале таким поисковиком я предложу заменить текущий Grails Plugin Portal также как это сделано в jQuery.
Вообще, я попробую изучить возможность и целесообразность создания механизма чтобы прописывать зависимости в Grails \ Gradle сразу на ревизию из репозитория системы контроля версий (Git или SVN). Это очень сильно упростит жизнь если использовать форки библиотек и устранит проблему с их версионированием облегчая модель Базара.

Следующее чем я хочу заняться это завести небольшой spare time project. Тут у меня две основные идеи которые я хочу реализовать:

1. Строгий переводчик и лексический конструктор.

Мне нужно выучить грамматику английского языка, что делать конечно же лень и не интересно. Я и русскую грамматику то не учил никогда, как вы наверное уже заметили, поэтому когда начинаю учить грамматику английского то вхожу в ступор от терминологии «подлежащее и сказуемое», «страдательный залог» и прочие герундии. Я себя чувствую как будто ты семиклассник который попал на курс по высшей математике и который диференциал dx/dy  решил сокращением дроби.
И я решил поступить так же как поступил на первом курсе с вышкой: взять и написать программу которая это всё будет решать. «лучший способ что-то изучить это научить этому компьютер» (с) кажись Дейкстра.
Теперь я хочу написать штуку которой реально всем не хватает: лексический конструктор предложений.
Допустим я вбиваю предложение «I read a book». Конструктор подсветит где тут глагол, где существительное. Затем я могу с помощью конструктора перевести это предложение в другое время или превратить в вопрос.
То есть это эдакий переводчик но с множеством кнопочек и подсказок. Обычные переводчики что я видел обычно просто имеют инпут и аутпут и переводят «примерно» и если были какие то проблемы с пониманием текста они это молча схавают и переведут «лучшая среда разработки» как «the best wednesday of development».
Тут есть большой прикол в том что этот проект прекрасно можно разработать в TDD стиле. Поэтому я свою попробую скринкастить и сделаю из него небольшое реалити шоу на своём ютуб канале где с нуля на глазах буду его создавать.

2. Консольная тула для рефакторинга.
Это более глобальный проект по реализации моего видения языка программирования следующего поколения, но тут конкретно я сделаю небольшой, но уже рабочий и полезный кусок чтобы использовать прям сегодня.
На сегодняшний день одна из самых больших проблем IT индустрии это обратная совместимость. Очень яркий тому пример это Java. На этом языке программирования написано тонны кода в больших проектах.
И теперь добавить новую фичу в язык очень сложно, потому что старый код может потом просто не скомпилироваться. Также в библиотеках джавы полно старых классов и методов помеченных как deprecated но которые не удаляют для поддержки обратной совместимости.
Например есть такой класс для индексированных массивов как Vector. Он старый, и тянется ещё с первой Джавы. Он имеет два недостатка: все его методы синхронизированны что гасит производительность и он не типизируемых дженериками.
Эти два недостатка исправлены в новом классе ArrayList, но никто же не будет вручную переписывать весь старый код на новый класс. Некоторые IDE имеют такой рефакторинг как Миграция (замена) класса.
Но это нужно чтобы каждый на своём проекте ткнул куда надо и нажал нужную комбинацию.
А теперь представьте что вы делаете библиотеку и в новой версии у вас у метода вы удалили лишний параметр. Всем пользователям вашей библиотеки теперь нужно просто удалить во всех местах где вызывается ваш метод этот redundant параметр. Элементарно, но изначально с новой версией вашей библиотеки у них код не будет компилироваться. Что вы тогда делаете? Обычно делаете новые метод без параметра рядом а старый помечаете как deprecated. И он так и болтается в коде до следующей майорной версии.
Теперь что я предлагаю: сделать небольшую консольную тулу которая автоматически пройдёт по коду и исправит всё так как надо. Так же как например миграции баз данных DBMaintain и LiquiBase. Код, это ведь то же данные по сути.
Тут особо придумывать ничего не нужно будет — можно попробовать вырезать рефакторинг из IntelliJ и просто к нему прилепить консольный интерфейс.

Если кому интересно — я буду рад любому сотрудничеству и идеям.
Надеюсь справлюсь 😉

 

Реклама

3 comments

  1. Владимир Мельник

    >> Теперь что я предлагаю: сделать небольшую консольную тулу которая автоматически пройдёт по коду и исправит всё так как надо. Так же как например миграции баз данных DBMaintain и LiquiBase. Код, это ведь то же данные по сути.

    Чув що якісь девелопери писали на Хаскелі утиліту, яка аналізує код на Джава та видаляє усе зайве. Так вони могли вирізати зі сторонніх бібліотек увесь код, що не використовувавсяу проєкті. Така от оптимізація.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s