четверг, 11 сентября 2014 г.

От флеша к питону

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

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

У питона есть своя философия.
  • Красивое лучше, чем уродливое. 
  • Явное лучше, чем неявное. 
  • Простое лучше, чем сложное. 
  • Сложное лучше, чем запутанное. 
  • Плоское лучше, чем вложенное. 
  • Разреженное лучше, чем плотное. 
  • Читаемость имеет значение. 
  • Особые случаи не настолько особые, чтобы нарушать правила. 
  • При этом практичность важнее безупречности. 
  • Ошибки никогда не должны замалчиваться. 
  • Если не замалчиваются явно. 
  • Встретив двусмысленность, отбрось искушение угадать. 
  • Должен существовать один — и, желательно, только один — очевидный способ сделать это. 
  • Сейчас лучше, чем никогда. 
  • Хотя никогда зачастую лучше, чем прямо сейчас. 
  • Если реализацию сложно объяснить — идея плоха. 
  • Если реализацию легко объяснить — идея, возможно, хороша. 
  • Пространства имён — отличная штука! Будем делать их побольше! 


Итак, процесс поиска. Линкедин, джин, работа уа. Откликались очень редко, это может быть связано с моей неправильной формулировкой и с временем когда народ боялся расширятся (весна).
Однако еще у меня сложилось впечатление что к флешерам относятся настороженно, не считая их серьезными программистами. Через три месяца мне повезло, и на втором собеседовании (за все это время) я получила тестовое задание.
И тут то я поняла что моих знаний не хватает критически, когда оказалось что надо не только писать код но и настраивать голый сервак.

Итак, грабля для перехода первая - навыки администрирования нужны, это целый отдельный пласт знаний. Администрирование и любовь к терминалу.

И тут я перейду к приятным моментам перехода - библиотеки. Сообщество питонистов мощнейшее, и на любую хотелку мы получаем несколько либ с документацией. И что самое главное - даже с минимальными знаниями языка в сорцах тех либ можно разобраться. Даже в джанге - в какой то момент я поняла что у меня нету времени читать документацию потому что я не знаю куда смотреть и полезла в сорцы (напоминаю что это тестовое, общее количество кодинга / втыкания в питон пару недель) и нашла как вставить нужный мне функционал.

Сразу грабля вторая - питон, не смотря на сахарок и простоту, низкоуровневый. Поэтому внезапно приходится сталкиваться с тем, о чем в бытности флешером даже не знаешь. Я думаю что имеющие вышку по теме не будут сильно этим удивлены, однако для меня это было сложно.

Как пример низкоуровневых штук - во втором питоне есть мозголомающая штука, строки. Они могут иметь бинарный и ютф формат иии кормят эксепшенами.

Грабля третья - виндовз офф.
Нет, конечно можно пытаться работать на винде, но этот процесс будет неудобным, как и работа с флешом на линуксе (рвется дебаг сессия, нету последних версий).
Так что здравствуй линукс или макось и консолька.
Как оказалось, консолька очень клевая вещь, надо только уметь готовить. Есть подсветка , автокомплит, история комманд (zsh наше все).


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

Бонусом к питону идут функциональные приемы, без которых тяжко из-за особенностей языка.
Невозможность типизировать / знать что должно прийти, входящие параметры в методе вводят в ступор по первому времени. Но со временем приходит понимание что это все не страшно, и уменьшение количества кода и увеличение его гибкости того стоит. Есть шикарнейший дебаггер в котором все видно. Все эти ограничения приводит это к тому что на тип перестаешь опираться и приходится делать максимально ясную архитектуру. В первое время я писала адовую ересь, пытаясь оградится от динамичности языка. Отгородится невозможно, надо с этим жить.

Зато в какой то момент понимаешь что код, типы, названия подменяются в процессе написания образами, ты точно понимаешь что как и зачем делаешь, в силу того что нету переходов на ритуальные танцы с кодом чтобы обозначить типы, заминировать все в стиле “шаг вправо, шаг в лево, идите лесом”. Это позволяет высвободить ресурсы мозга и писать и читать зубодробительные конструкции которые не питонистов вводят в каталепсию.

l.brand_in = lambda x: [brand for brand in brands if brand.lower() in x[0].lower()]


Итак, после полугода работы на питоне что я имею в сухом остатке. Полюбила консоль, регулярки, получила более четкое понимание процессов, натренировавшуюся память и возможность писать код без иде, базовые навыки администрирования, полюбила и близко узнала ооп, начала практиковать функционалку, научилась работать с эксепшенами. В принципе это все можно получить и на флеше, но не хватает мотивации в силу того что “и так все работает”.

И да, я обратно полюбила флеш. То что я не знала толком как его использовать не делает его плохим.

Я вернулась

Итак, в какой то момент я скопытилась и стопнула проект. Сейчас постепенно возвращаются силы и я опять тут.

четверг, 9 января 2014 г.

Доки, живопись


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

В планах - отдельная флешка для создания уровней юзерами.

вторник, 7 января 2014 г.

Опять тут

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

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

С сегодняшнего дня в рамках самообразования буду час копаться в какой нить либе с гитхаба, интересно насколько полезно будет.

пятница, 27 декабря 2013 г.

Прогресс, наконец то


Помучавшись с придумыванием уровня я поняла что что то кардинально нето. И сделала отображение следующего шага сразу в процессе составления поля. Сразу стало прямо аняня и счастье. Еще пытаюсь рисовать новые фигуры, по пока получается не очень, я недовольна.
Немного помучалась с багами и не могу придумать что сделать с поиском у краев - анализировать чтобы фигура не вылезала за поле либо отключить нахрен.

среда, 25 декабря 2013 г.

Жывотное


Что то я закопалась и потеряла счет дням. Итак, есть целых два первых уровня. Сделали список гемплейных возможностей и ограничений, начали писать уровни в тексте. Очень хочется сделать внятный туториал и уровни не заставляющие чувствовать игрока тупым идиотом который не понимает что от него хотят вообще.

И да, переписала полностью просчет сцены.