Привет!
Решил, что раз уж у меня не получается писать посты с утра после ночной смены, лучше буду изначально делать это вечером, на свежую голову. В самом деле, кому вообще нужно начинать первое утро рабочей недели с очередной порции моей депрессивной писанины? А так прийдёт, например, человек уставший с работы, устроится поудобнее в своём любимом кресле, возьмёт планшетик и, похрустывая жареной картошечкой, погрузится в продолжение истории о путешествии Йоси в удивительный и опасный мир программирования :)
Понедельник наступил, но как я и ожидал, в этот раз писать мне особенно не о чём. В этом посте не будет разборов курсов на Хекслете и ссылок на понравившиеся статьи в Интернете, поскольку научиться чему-то новому за это время я так и не успел. Работал много, отрабатывая минувшие праздники, прохождение курсов пока поставил на паузу и всё свое внимание на этой неделе сосредоточил только на воплощении одной единственной идеи, которая уже давно созревала у меня в голове. Так что, эта неделя в плане программирования для меня выдалась более практической, нежели теоритической.
Но для начала немного предыстории.
Как вы все уже, наверняка, знаете, в моей повседневной жизни я работаю на птицефабрике и занимаюсь забоем птицы. Наверно, вы все когда-то слышали слово “кошерный”. В контексте продуктов питания это означает “изготовленный согласно предписаниям иудаизма и пригодный для употребления в пищу иудеям”. Так вот, моей задачей как раз является выполнение забоя в соответствии с такими предписаниями для того, чтобы курочка, которая попадёт на субботний и праздничный стол правоверного еврея являлась кошерной по всем самым строгим правилам. Поначалу я не хотел сильно афишировать свой род деятельности, потому что все люди разные и аудитория тоже бывает разной. А что если кто-то из моих читателей является веганом и это может оскорбить его чувства? Всё-таки не хочется наживать себе врагов вместо друзей. Или, быть может, мой потенциальный работодатель окажется активным борцом за права животных? Тогда плакала моя будущая работа, это уж точно! Но общаясь с людьми и упоминая тут и там о своей работе, я пришёл к выводу, что в целом люди воспринимают это вполне адекватно, так что не вижу необходимости дальше скрывать то, что большинству и так уже, наверно, известно. В конце концов, это просто работа, такая же, как и все остальные. Тяжелая, грязная и сопряженная со стрессами, но в целом — просто работа. И я, дорогие мои друзья веганы и сочувствующие, не меньше вашего хочу, чтобы она стала частью моего прошлого и забылась как страшный сон. Поэтому и бросаю все силы на то, чтобы поскорее выучить программирование и вырваться из этого ада.
Но пока что я всё еще тут и получаю деньги за работу ножом. И каждое моё движение этим ножом оплачивается в соответствии с установленным тарифом. Зарплата у нас начисляется по достаточно замудрённому алгоритму, который зависит не только от рабочих часов, но и от количества забитой птицы, а также множества других, менее значимых факторов. Всё это очень сильно варьируется от месяца к месяцу и потому бывает очень сложно рассчитать в голове, хотя бы примерно, сколько я должен получить на этот раз. Зарплату нам переводят поздно, обычно не раньше 12 числа и хотелось бы уже в начале месяца знать, сколько я получу, для того, чтобы иметь возможность заранее спланировать семейный бюджет на текущий месяц. Я пытался пользоваться различными приложениями для рассчёта зарплаты, имеющимися в гугл-маркете, но ни одно из них не рассчитано на нашу систему и поэтому не может дать достаточно точных результатов. Но в какой-то момент меня осенило: черт возьми, да я же сам программист! Возьму и сам напишу себе такое приложение!
И вот, наконец, на этой неделе мои руки дошли до того, чтобы реализовать данную идею на практике. Всё начиналось с одного небольшого js-файлика, написанного в repl.it c планшета по дороге с работы, т.к. даже компа с собой не было. Все входные данные были заданы заранее в виде констант, но главное было создать сам каркас и функции, вычисляющие суммы различных отчислений. Далее уже придал всему этому более нормальный вид: разнес функции по отдельным модулям, реализовал взаимодействие с пользователем и дал возможность выбора языка, залил всё это дело на гитхаб В итоге получился, конечно, не гугл и не амазон, да и саму программку можно запускать только через консоль, но если учитывать, что у программы все равно будет один-единственный пользователь, умеющий пользоваться терминалом, то этого пока вполне достаточно. Ну а в будущем уже можно будет потренироваться и попробовать запилить веб-версию на том же Экспрессе.
В общем, как вы уже поняли, все, чем я занимался на этой неделе, это вылизывание и рефакторинг моей маленькой программки. Получил пару замечаний и от Кирилла. Например, он говорит, что для локализации приложения в реальной жизни нужно пользоваться библиотеками вроде i18next. Я попробовал разобраться в том, что это такое и как это работает, но, честно говоря, не совсем понял. Поэтому для начала нужно вообще изучить тему локализации и интернационализации и то, как работать с подобными библиотеками. Ну что ж, надо — значит будем разбираться.
Пока что реально больше писать не о чём, поэтому буду закругляться. Если будет время и желание, заходите на мой гитхаб и зацените эту писанину, буду рад вашим комментариям. А у меня на сегодня всё.
Всем хорошей и плодотворной недели!