@proRuby

Страница 735 из 1594
Alexey
16.09.2017
12:42:31
Да, редко пользовался гитом, рефакторил часто.

Anton
16.09.2017
12:44:28
Alex
16.09.2017
12:44:57
надо заскринить)

Alexey
16.09.2017
12:45:01
пишу что делаю в коммиты

Google
Sergey
16.09.2017
12:47:25
))))

Alex
16.09.2017
12:47:47
я думал в коммитах личный твиттер, а там изменения надо описывать

Aldar
16.09.2017
12:58:48
reFUCKtoring

Sergey
16.09.2017
16:27:04
есть рабочий шаблон деплоя на mina?

https://medium.com/pixelpoint/deploy-rails-application-with-mina-nginx-and-puma-96a9caac9078 по этой статье хочу сделать

там написано добавить строчки в puma.rb, добавляешь и на локальном сервере перестает работать

Nikolay
16.09.2017
17:21:05
там написано добавить строчки в puma.rb, добавляешь и на локальном сервере перестает работать
там потому что продакшен настройки...у тебя два пути - разобраться почему puma.rb подхватывается локально и исправить это, либо сделать puma.rb другой для продакшена и во время деплоя его подсовывать...напримере через cp откуда-нибудь из папки конфигов или симлинком из shared

Vasiliy
16.09.2017
17:25:53
Вообще лучше исходники пумы глянуть откуда конфиг берется

Там вроде она ищет сначала в config/puma/development.rb (ну или продакшн) а потом уже конфиг/пума.рб

Oleg
16.09.2017
17:44:55
Однажды я рефакторил 2 года подряд

Oleg
16.09.2017
17:45:31
Это был банк и пару миллионов строк кода

Google
Nikita
16.09.2017
17:46:01
на руби?)

Oleg
16.09.2017
17:48:35
И надо было по сути то просто обновить версию фреймворка... а новая версия ломала апи, а также была пропатчена на столько глубоко и на столько часто этот патч использовался, что... а ещё там было сразу 2 версии фреймворка, очень старая была контейнерезированна в эдакую типа виртуальную машины чтобы можно было использовать одну версию фреймворка в другой... а ещё код писало так много человек и так долго что стилистика, подход и архитектура за каждый год менялась... а ещё.... не, нельзя такие истории на ночь ?

Oleg
16.09.2017
17:50:22
На JS, но на таком где своё ООП со своими классами, свои полифилы, свои пакеты и вообще всё своё, вроде на JS пишешь, но в такой экосистеме языком мог бы быть любой другой язык

Так что это не про руби-чат, да

Но тем не менее 2 года рефакторинга оставляют след на всю жизнь ?

Vasiliy
16.09.2017
17:59:04
Во, у нас чувак тоже так писал, такой - блэ, ангуляр сложно, напишу сам, потом я туда лез и охуевал

Oleg
16.09.2017
17:59:18
Там был ExtJS

Самая первая энтерпрайз-либа для JS. В ней кстати изобрели практически всё что сейчас появилось в реактах-ангулярах и прочих либах.

Уже тогда и компонентный подход, и MVC/MVVM и стили на компонент отдельно, и компиляция только заюзанных классов и ещё тысячи фич и всё это на фронтенде крутилось на столько, что на фронтенде был и фронтенд и бекенд и чуть ли не в базу напрямую запросы

Такой вот кроваво-энтерпрайзный мутант, который тогда уже всё умел на столько, что смешно было смотреть потом на "изобретения" реактов и ангуляров. Но он почти умер. Потому что сложно и не модно.

А, ну и лицензия в 5к баксов минимум в год, да

Sergey
16.09.2017
18:06:12
а на реакте можно запилить так чтобы это было мобильное приложение?

Oleg
16.09.2017
18:40:25
Да, но лучше этот вопрос в JS чат

Sergey
16.09.2017
18:51:25
ок, спасибо, спрошу там как это сделать, чет мотивация пропала учить реакт осенью

Ракета
16.09.2017
18:52:48
Однажды я рефакторил 2 года подряд
Ну это говорит только о твоём умении выбирать джоб офер)) не всем суждено писать код с нуля, кто-то должен и какашки разгребать индусов ))

Oleg
16.09.2017
18:56:04
А я на самом деле и не сказал бы что мне сильно то не нравилось рефакторить

То есть это не было про "разгребать какашки"

Это было больше про решение таких, нетривиальных задач в рамках живого проекта - это как с хирургическим ножем вырезать лишнее из тела живого человека, да так чтобы он не помер от этого

Google
Oleg
16.09.2017
18:58:03
Найти все ниточки, собрать воедино и тп

И не скучно

Но да, задачи больше не про создай новое, а про почини старое

Интересный такой опыт получился

Alex
16.09.2017
19:01:09
а как там было с покрытостью тестами?

Oleg
16.09.2017
19:01:45
Отсутствие

Пару миллионов сток кода без тестов, да

Но были ручные тесты с описанными тесткейсами и прочее такое

Alex
16.09.2017
19:02:36
сначал писалались тесты а потом рефакториг или...?

Oleg
16.09.2017
19:02:46
Человек который фултайм занимался тем что проверял что после внесения правок всё продолжает работать

Рефакторинг сразу

Alex
16.09.2017
19:03:19
экстрим

Alex
16.09.2017
19:03:25
ну прикольный опыт, да

Там был ExtJS
на нем так все и осталось - или мигрировали куда-то?

Oleg
16.09.2017
19:04:26
На нем

Мигрировать там можно было разве что с нуля переписать всё

А вот пропатчить до более современных версий - это да

Alex
16.09.2017
19:06:13
круто

а какие были критерии успеха? чтобы вот было ясно - "все ребята, мы закончили"

Vasiliy
16.09.2017
19:06:49
На самом деле это вообще заебись опыт, на живом примере понимаешь почему важна архитектура и прочее

Google
Oleg
16.09.2017
19:07:42
Критерий успеха - весь код что работал на одной версии фреймворка - работает теперь на другой. Плюс попутно фикс багов.

Ещё критерий мог бы быть что та часть кода что завиртуализированна тоже работает на новой версии, но за 2 года до этого так и не дошла очередь, только фиксы багов

Vasiliy
16.09.2017
19:08:49
А не думали переписать все с нуля?

Oleg
16.09.2017
19:09:03
Вот - это хороший вопрос. Но есть нюансы.

Vasiliy
16.09.2017
19:09:47
Хотя б как нить кусочками подходить, модулями там

Alex
16.09.2017
19:09:57
у меня есть такой опыт - сложный код часто легче переписать с 0 чем рефакторить но мой опыт на несколько порядков скромнее чем миллион строк - может быть там какие-то другие нюансы появляются

Vasiliy
16.09.2017
19:10:52
Я к слову тоже пинал три года проект который "вот ща ща и перепишем"

В итоге дописки, фиксы, зарабатывает да и похуй

Admin
ERROR: S client not available

Oleg
16.09.2017
19:12:29
Дело в том что там до этого был сайт, на PHP, самая первая версия всего этого. Потом ребята 7 лет пилили новый сайт, переписывая тот старый, попутно добавляя новые вещи что требовали новые бизнес-условия. Так вот спустя 7 лет в итоге работал и новый сайт и старый, потому что на старом были всё-ещё некотые фичи что отсутствовали на новом. В итоге старый сайт закрыли, но не для всех стран - СНГ(без России) на нем продолжало работать. А писало это всё суммарно 35 человек примерно, чисто разработка, 7 лет. Переписать такое с нуля - это очень сложная задача. А ещё сложнее тот факт что часть бизнес-кейсов была утеряна, не осталось людей что знали как оно должно на самом деле работать и баги это или фичи. Но система продолжала работать и успешно выполнять те задачи что были.

Тут ещё такой конфликт интересов - а нужно ли бизнесу всё и с нуля, если инструмент выполняет свои задачи?

То есть в принципе можно было бы выделеть 100500 мильенов, нанять 100500 сотрудников, включая разработку, тестирование, аналитиков и даже переводчиков под это дело и переписать всё с нуля

Но, даже несмотря на потерю части информации о том как оно должно работать - система работала

Так что не всё однозначно

В итоге - просто апдейт на новую версию фреймворка, которая фиксила баги, попутно и руками фиксинг багов и внедрение мелких фич

Alex
16.09.2017
19:42:53
круто, интересно, спасибо за инфо ну да - если так смотреть то с т.зр бизнеса медленный рефакторинг - конечно лучше

Maxim
16.09.2017
20:38:13
народ, а в ruby есть гем, который позволяет визуально управлять гемами? в десктопной приложухе, ну или в браузере на локалхосте

Lupsick
17.09.2017
02:25:46
Ща бы гемами поуправлять

Владимир
17.09.2017
08:37:22
...визуально управлять гемами... тут явно запахло гейтсом) у мен другой вопрос есть относительно дешевые надежные хосты под рельсы или как всегда покупать выделеный серв и все самому ставить?

Google
Maxim
17.09.2017
08:37:32
А зачем?
хотя бы для того что-бы визуально посмотреть на весь их список / версии. + такие тулзы есть написанные под Node, Python, вот любопытно стало есть ли тут такая тулза. нашёл встроенный обозреватель в RubyMine, вроде неплохо

Владимир
17.09.2017
08:40:03
контроль версий через консоль тебе покажет что угодно лишь бы понимал что ты хочешь увидеть. А рубимаин еше подключить нужно, некоторые гемы могли криво или хитро стать. сама айдеешка их видит а в исполнении нет и наоборот

wi11son
17.09.2017
08:41:19
Делать контроль версий нужно в гемфайле, зачем смотреть, какие есть в целом, если ты знаешь, что тебе нужно в гемфайле?

Владимир
17.09.2017
08:44:17
Ihor.ru дешево и сердито
спасиб. Буду ковырять)

wi11son
17.09.2017
08:46:32
А кто кубернетисом деплоит?

Вообще есть смысл запариваться на такие штуки для собственных проектов, где один разраб - я

Штата оперейшнсов нет

Nikolay
17.09.2017
09:19:10
если много времени и вы любите боль, то да, смысл имеет

Владимир
17.09.2017
09:20:21
Проше просто не забывать делать бекапы на разных не связаных между собой носителях и будет счастье

wi11son
17.09.2017
09:22:34
А вот как так делают такие штуки, где делается сетап приложения, типа жиры в атлассиане

Там разворачивается контейнер для нового кастомера изолированный?

Alex
17.09.2017
09:27:45
Там разворачивается контейнер для нового кастомера изолированный?
есть три (насколко я помню) способа сделать tenant, развернуть отдельную инфраструктуру для каждого клиента, держать все в одной базе в разных схемах и держать все в одной базе, различать по конкретному полю кто к кому относится. Хотя возможно я где то напутал. Вот пара гемов в тему https://github.com/ErwinM/acts_as_tenant https://github.com/influitive/apartment

Nikita
17.09.2017
10:00:29
apartment это должна быть какая-то адовая боль и страдания

а первый на взгляд адекватней

Alex
17.09.2017
10:00:57
Уж больно сильно он в систему влезает.

Страница 735 из 1594