Опис послуги
ПерекладЯ пишу програми на Factor — сучасній стековій конкатенативній мові, і роблю це усвідомлено, а не випадково. Більшість моєї роботи лежить осторонь від мейнстриму: я будую утиліти командного рядка, конвейери обробки даних, генератори коду та невеликі засоби автоматизації, де конкатенативний стиль по-справжньому розкривається. Замість того щоб придумувати назви проміжним змінним, я компоную слова, які прогоняють значення через стек, дроблю логіку на крошечні переиспользуємі шматочки та тримаю кожне визначення достатньо коротким, щоб утримати його в голові. Така дисципліна дає код, який читається як послідовність дієслів і легко піддається переробці: в конкатенативній мові винести фразу в окреме слово майже нічого не стоїть.
Мій досвід охоплює весь світ конкатенативних та стекових машин, а не одну реалізацію. Мені близькі форт-подібні підходи, постфіксне обчислення, квотації та комбінатори, і я люблю проектувати невеликі предметно-орієнтовані мови, що дозволяють непрограмісту виразити замисел гарстю вдало підібраних слів. Коли у замовника вже є робоча ідея, але немає чистого способу її виразити, я моделюю предметну область як словник, пов'язую його з нижчележащою системою і відаю те, що одночасно є і програмою, і читабельною специфікацією. Тестування мені теж важливе: інтерактивний listener Factor і модульні тести дозволяють вирощувати рішення поступово та тримати його чесним в міру змін.
Якщо у вас є вузька задача автоматизації, парсер, прототип інтерпретатора або ви просто хочете зрозуміти, чи підходить конкатенативний підхід вашій задачі, — я той спеціаліст, до якого варто звернутися. Чесно скажу, де Factor уместен, а де ні, задокументую зроблене та залишу код, який зможе підхопити інший розробник.
— Інструменти, скрипти та утиліти командного рядка на Factor
— Форт-подібні та постфіксні рішення на стековій моделі
— Невеликі предметно-орієнтовані та вбудовані міні-мови
— Конвейери даних, генерація коду та обробка тексту
— Рефакторинг коду через комбінатори та квотації
— Прототипи інтерпретаторів, парсери та експерименти з REPL
Мій досвід охоплює весь світ конкатенативних та стекових машин, а не одну реалізацію. Мені близькі форт-подібні підходи, постфіксне обчислення, квотації та комбінатори, і я люблю проектувати невеликі предметно-орієнтовані мови, що дозволяють непрограмісту виразити замисел гарстю вдало підібраних слів. Коли у замовника вже є робоча ідея, але немає чистого способу її виразити, я моделюю предметну область як словник, пов'язую його з нижчележащою системою і відаю те, що одночасно є і програмою, і читабельною специфікацією. Тестування мені теж важливе: інтерактивний listener Factor і модульні тести дозволяють вирощувати рішення поступово та тримати його чесним в міру змін.
Якщо у вас є вузька задача автоматизації, парсер, прототип інтерпретатора або ви просто хочете зрозуміти, чи підходить конкатенативний підхід вашій задачі, — я той спеціаліст, до якого варто звернутися. Чесно скажу, де Factor уместен, а де ні, задокументую зроблене та залишу код, який зможе підхопити інший розробник.
— Інструменти, скрипти та утиліти командного рядка на Factor
— Форт-подібні та постфіксні рішення на стековій моделі
— Невеликі предметно-орієнтовані та вбудовані міні-мови
— Конвейери даних, генерація коду та обробка тексту
— Рефакторинг коду через комбінатори та квотації
— Прототипи інтерпретаторів, парсери та експерименти з REPL