Опис послуги
ПерекладЯ інженер функціонального програмування і щодня працюю на Koka — дослідницькій мові, побудованій навколо алгебраїчних ефектів і рядкових (row-based) типів ефектів. Якщо вам потрібен прототип, бібліотека або інструмент поряд з компілятором, де кожен побічний ефект відслідковується в сигнатурі типу, а не схований у рантаймі, я допоможу. Зазвичай моя робота виглядає так: я описую вашу предметну область невеликим набором операцій-ефектів, пишу обробники, які надають цим операціям конкретний сенс, і дозволяю перевіряльнику типів Koka довести, що жоден необроблений ефект не ускользне. Завдяки цьому одна й та ж логіка запускається на реальній базі даних, на заглушці або в детермінованому відтворенні для тестів — достатньо підмінити обробник. Цим прийомом я будував парсери, кінцеві автомати, асинхронні конвеєри та інтерпретатори невеликих предметних мов. Зі сторони компілятора я впевнено читаю, як Koka розгортає ефекти в стиль передачі свідчень (evidence-passing), міркую про те, як типізована компіляція понижує обробники, та діагностую, чому рядок ефектів не уніфікується так, як ви очікували. В результаті ви отримуєте чистий коментований вихідник на Koka, коротку проектну замітку з обґрунтуванням обраних сигнатур ефектів і набір тестів, що перевіряє кожен обробник окремо. Складні місця я описую окремо, щоб команда могла супроводжувати код після мене. Якщо ви розглядаєте обробники ефектів як заміну трансформерам монад або макаронам з колбеків — присилайте завдання, і я запропоную конкретний дизайн ефектів ще до старту.