Регистрация  |  Вход

Пост гнева. [Worst practices]

Давайте соберем те вещи (примеры кода), которые никогда не стоит использовать.
1. Ни в коем случае не используйте хардкод.
Как можно захардкодить строку JSON'a, в которой куча id, а потом десериализовать его и вставить в БД.
Как такое может придти в голову?
Кст. судя по комментариям в коде, этот человек есть на форуме. Не буду разглашать имя, дабы не портить его репутацию здесь.

Давайте соберем те вещи (примеры кода), которые никогда не стоит использовать.
1. Ни в коем случае не используйте хардкод.
Как можно захардкодить строку JSON'a, в которой куча id, а потом десериализовать его и вставить в БД.
Как такое может придти в голову?
Кст. судя по комментариям в коде, этот человек есть на форуме. Не буду разглашать имя, дабы не портить его репутацию здесь.

Это был не я.

Хардкод - это кстати широкое понятие.

Вставка ID записей - это такая крайняя степень хардкода, что даже наверное к хардкоду и не относится.
Это просто ошибка, основанная на непонимании некоторых вещей.

А вот про то, что понимать под "хардкодом": плохим или допустимым, это можно обсудить

Это был не я.

Хардкод - это кстати широкое понятие.

Вставка ID записей - это такая крайняя степень хардкода, что даже наверное к хардкоду и не относится.
Это просто ошибка, основанная на непонимании некоторых вещей.

А вот про то, что понимать под "хардкодом": плохим или допустимым, это можно обсудить 

Den Brown
Хардкод - это кстати широкое понятие.

Это всегда ЗЛО!!!

[quote="Den Brown"]Хардкод - это кстати широкое понятие.[/quote]
Это всегда ЗЛО!!!

Gres
Как можно захардкодить строку JSON'a, в которой куча id, а потом десериализовать его и вставить в БД.

Очень интересный use case.
А на каком этапе это делалось? установка пакета? тесты? или вызов страницы?

А так согласен - хардкод, это плохо. Я встречал такое в тест методах.

Я бы еще добавил - никаких "строк" в коде, только custom labels. Все равно рани или поздно придется этим заниматься.

[quote="Gres"]Как можно захардкодить строку JSON'a, в которой куча id, а потом десериализовать его и вставить в БД. [/quote]
Очень интересный use case.
А на каком этапе это делалось? установка пакета? тесты? или вызов страницы?

А так согласен - хардкод, это плохо. Я встречал такое в тест методах.

Я бы еще добавил - никаких "строк" в коде, только custom labels. Все равно рани или поздно придется этим заниматься.

О, вспомнил что меня больше всего бесит!!!

Это когда пытаются кастомный функционал натянуть на Standard Layout. Ну возьмите, напишите новую кастомную страницу VF с нуля, на худой конец встройте <apex:details> в кастомную страницу и потом пилите злой javascript. А то я столько навидался костылей, когда пытаются бороться с Same-origin policy на кастомной странице. Чего только не придумывают. Даже делают через static resources + get параметры (привет wilder крутое было решение) чтобы передать данные из inline VF в Standard Layout. Вот это ЖЕСТЬ!

Плюс меня вырубают задачи, когда в абсолютно кастомном функционале пытаются использовать стандартные объекты. Ладно если это для внутреннего использования. Но когда это для продукта, который будет устанавливаться клиентам!!! А потом голову ломают как обойти обязательные поля, которые насоздавал заказчик, validation rules заказчика или триггеры, которые висят на стандартном объекте. Нафига? Вы приходите к клиенту чтобы добавить ему нужный функционал, так пусть это будет обособленное приложение в вакууме, а не франкенштейн который не работает из-за чужого кода или вообще ломает чужой орг нафиг!

О, вспомнил что меня больше всего бесит!!!

Это когда пытаются кастомный функционал натянуть на Standard Layout. Ну возьмите, напишите новую кастомную страницу VF с нуля, на худой конец встройте <apex:details> в кастомную страницу и потом пилите злой javascript. А то я столько навидался костылей, когда пытаются бороться с [url=http://en.wikipedia.org/wiki/Same-origin_policy]Same-origin policy[/url] на кастомной странице. Чего только не придумывают. Даже делают через static resources + get параметры (привет wilder :) крутое было решение) чтобы передать данные из inline VF в Standard Layout. Вот это ЖЕСТЬ!

Плюс меня вырубают задачи, когда в абсолютно кастомном функционале пытаются использовать стандартные объекты. Ладно если это для внутреннего использования. Но когда это для продукта, который будет устанавливаться клиентам!!! А потом голову ломают как обойти обязательные поля, которые насоздавал заказчик, validation rules заказчика или триггеры, которые висят на стандартном объекте. Нафига? Вы приходите к клиенту чтобы добавить ему нужный функционал, так пусть это будет обособленное приложение в вакууме, а не франкенштейн который не работает из-за чужого кода или вообще ломает чужой орг нафиг!

Dmitry Shnyrev
А на каком этапе это делалось? установка пакета? тесты? или вызов страницы?

Тесты

[quote="Dmitry Shnyrev"]А на каком этапе это делалось? установка пакета? тесты? или вызов страницы?[/quote]
Тесты

Den Brown
Вставка ID записей - это такая крайняя степень хардкода, что даже наверное к хардкоду и не относится.

А к чему относится?

[quote="Den Brown"]Вставка ID записей - это такая крайняя степень хардкода, что даже наверное к хардкоду и не относится. [/quote]
А к чему относится?

Gres
Den Brown
Вставка ID записей - это такая крайняя степень хардкода, что даже наверное к хардкоду и не относится.

А к чему относится?

Хардкод - это такие решения, которые в принципе работают в Орге назначения и формально решают поставленные задачи. Но их невозможно или сложно (т.е. нужно дописывать прям в коде) расширять, и\или они не резистентны к изменениям.

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

Вот например, пример СФного мягкого "хардкода" (в моем понимании - все ИМХО).
Очень часто, нам нужно дать записи РекТайп АйДи.
В одной из самых первых тем, Дмитрий указал мне, что нужно выцеплять его по: девелопер нейм (неизменно), типа объекта и АктивенЛи.

А если я получу РекТайп АйДи (только) по обычному имени в квери. Имени которое может меняться. Это можно назвать мягким "хардкодом" (тк "переменное" имя просто "вписано" в код)? мы изначально создаем ситуацию не резистентую к переменам.
Плюс обращение к РекТайпу по обычному имени можно организовать и в формулах.

[quote="Gres"][quote="Den Brown"]Вставка ID записей - это такая крайняя степень хардкода, что даже наверное к хардкоду и не относится. [/quote]
А к чему относится?[/quote]

Хардкод - это такие решения, которые в принципе работают в Орге назначения и формально решают поставленные задачи. Но их невозможно или сложно (т.е. нужно дописывать прям в коде) расширять,  и\или они не резистентны к изменениям.

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

Вот например, пример СФного мягкого "хардкода" (в моем понимании - все ИМХО).
Очень часто, нам нужно дать записи РекТайп АйДи.
В одной из самых первых тем, Дмитрий указал мне, что нужно выцеплять его по: девелопер нейм (неизменно), типа объекта и АктивенЛи.

А если я получу РекТайп АйДи (только) по обычному имени в квери. Имени которое может меняться. Это можно назвать мягким "хардкодом" (тк "переменное" имя просто "вписано" в код)? мы изначально создаем ситуацию не резистентую к переменам.
Плюс обращение к РекТайпу по обычному имени можно организовать и в формулах.

Gres
Dmitry Shnyrev
А на каком этапе это делалось? установка пакета? тесты? или вызов страницы?

Тесты

Может человеку было лень имплементить мок класс для теста колаутов.. не вижу ничего плохого в таких хардкодах
+ хотелось бы узнать, что именно было в этом жсоне?

[quote="Gres"][quote="Dmitry Shnyrev"]А на каком этапе это делалось? установка пакета? тесты? или вызов страницы?[/quote]
Тесты[/quote]
Может человеку было лень имплементить мок класс для теста колаутов.. не вижу ничего плохого в таких хардкодах
+ хотелось бы узнать, что именно было в этом жсоне?

Maxim Elets
Может человеку было лень имплементить мок класс для теста колаутов.. не вижу ничего плохого в таких хардкодах

Но наверное такие тесты не заработают на другом орге? Если только это не fullcopy sandbox.

[quote="Maxim Elets"]Может человеку было лень имплементить мок класс для теста колаутов.. не вижу ничего плохого в таких хардкодах [/quote]
Но наверное такие тесты не заработают на другом орге? Если только это не fullcopy sandbox.

Dmitry Shnyrev
Maxim Elets
Может человеку было лень имплементить мок класс для теста колаутов.. не вижу ничего плохого в таких хардкодах

Но наверное такие тесты не заработают на другом орге? Если только это не fullcopy sandbox.

Никто не уточнил какие это Id)
может это не салесфорс id

ПЫСЫ: без хардокода наша жизнь была бы очень трудной

[quote="Dmitry Shnyrev"][quote="Maxim Elets"]Может человеку было лень имплементить мок класс для теста колаутов.. не вижу ничего плохого в таких хардкодах [/quote]
Но наверное такие тесты не заработают на другом орге? Если только это не fullcopy sandbox.[/quote]
Никто не уточнил какие это Id)
может это не салесфорс id

ПЫСЫ: без хардокода наша жизнь была бы очень трудной

Gres
1. Ни в коем случае не используйте хардкод.

и да, я в корне не согласен с этим.
хардкод SF Id - плохо,
хардкод на всякий случай какого нить урла(если у челов почесались руки и они снесли какой нить кастом сетинг) что бы использовать его по умолчанию - хорошо

[quote="Gres"]1. Ни в коем случае не используйте хардкод. [/quote]

и да, я в корне не согласен с этим.
хардкод SF Id - плохо, 
хардкод на всякий случай какого нить урла(если у челов почесались руки и они снесли какой нить кастом сетинг) что бы использовать его по умолчанию - хорошо

Dmitry Shnyrev
Если только это не fullcopy sandbox.

а что в fullcopy sandbox те же АйДи у записей, что и в Проде? :o

[quote="Dmitry Shnyrev"]Если только это не fullcopy sandbox.[/quote]

а что в fullcopy sandbox те же АйДи у записей, что и в Проде? :o

Gres
Кст. судя по комментариям в коде, этот человек есть на форуме. Не буду разглашать имя, дабы не портить его репутацию здесь.

А вот комментарии в коде это всегда хорошо. А то иной раз(почему иной, у нас на фирме комментарии оставляют всего лишь пару человек) встречаешь q1, jopa, blead, bobo и тд названия переменных....

[quote="Gres"]Кст. судя по комментариям в коде, этот человек есть на форуме. Не буду разглашать имя, дабы не портить его репутацию здесь.[/quote]

А вот комментарии в коде это всегда хорошо. А то иной раз(почему иной, у нас на фирме комментарии оставляют всего лишь пару человек) встречаешь q1, jopa, blead, bobo и тд названия переменных....

Den Brown
Dmitry Shnyrev
Если только это не fullcopy sandbox.

а что в fullcopy sandbox те же АйДи у записей, что и в Проде? :o


На то он и фулл)

[quote="Den Brown"][quote="Dmitry Shnyrev"]Если только это не fullcopy sandbox.[/quote]

а что в fullcopy sandbox те же АйДи у записей, что и в Проде? :o[/quote]
На то он и фулл)

Gres
Давайте соберем те вещи (примеры кода), которые никогда не стоит использовать.
1. Ни в коем случае не используйте хардкод.
Как можно захардкодить строку JSON'a, в которой куча id, а потом десериализовать его и вставить в БД.
Как такое может придти в голову?
Кст. судя по комментариям в коде, этот человек есть на форуме. Не буду разглашать имя, дабы не портить его репутацию здесь.

Смотри как совпало ну просто мой тест один в один который не так давно писал для одной компании Если ты конечно про меня ?

[quote="Gres"]Давайте соберем те вещи (примеры кода), которые никогда не стоит использовать.
1. Ни в коем случае не используйте хардкод.
Как можно захардкодить строку JSON'a, в которой куча id, а потом десериализовать его и вставить в БД.
Как такое может придти в голову?
Кст. судя по комментариям в коде, этот человек есть на форуме. Не буду разглашать имя, дабы не портить его репутацию здесь.[/quote]
Смотри как совпало ну просто мой тест один в один который не так давно писал для одной компании :) Если ты конечно про меня ?

Maxim Elets
ПЫСЫ: без хардокода наша жизнь была бы очень трудной

Пруф?

[quote="Maxim Elets"]ПЫСЫ: без хардокода наша жизнь была бы очень трудной[/quote]
Пруф?

Gres
хардкод на всякий случай какого нить урла(если у челов почесались руки и они снесли какой нить кастом сетинг) что бы использовать его по умолчанию - хорошо

пост чуть ниже

[quote="Gres"]хардкод на всякий случай какого нить урла(если у челов почесались руки и они снесли какой нить кастом сетинг) что бы использовать его по умолчанию - хорошо[/quote]
пост чуть ниже

Maxim Elets
А вот комментарии в коде это всегда хорошо. А то иной раз(почему иной, у нас на фирме комментарии оставляют всего лишь пару человек) встречаешь q1, jopa, blead, bobo и тд названия переменных....

Видимо вы и ваши коллеги не читали Роберта Мартина.

[quote="Maxim Elets"]А вот комментарии в коде это всегда хорошо. А то иной раз(почему иной, у нас на фирме комментарии оставляют всего лишь пару человек) встречаешь q1, jopa, blead, bobo и тд названия переменных....[/quote]
Видимо вы и ваши коллеги не читали Роберта Мартина.

Gres
Maxim Elets
А вот комментарии в коде это всегда хорошо. А то иной раз(почему иной, у нас на фирме комментарии оставляют всего лишь пару человек) встречаешь q1, jopa, blead, bobo и тд названия переменных....

Видимо вы и ваши коллеги не читали Роберта Мартина.

Я не читал, а что он утверждает, jopa123 это хорошо?

[quote="Gres"][quote="Maxim Elets"]А вот комментарии в коде это всегда хорошо. А то иной раз(почему иной, у нас на фирме комментарии оставляют всего лишь пару человек) встречаешь q1, jopa, blead, bobo и тд названия переменных....[/quote]
Видимо вы и ваши коллеги не читали Роберта Мартина.[/quote]
Я не читал, а что он утверждает, jopa123 это хорошо?

Dmitry Shnyrev
Но наверное такие тесты не заработают на другом орге?

Естественно!
Они даже не заработают на проде, если были созданы на fullcopy СБ.

[quote="Dmitry Shnyrev"]Но наверное такие тесты не заработают на другом орге? [/quote]
Естественно!
Они даже не заработают на проде, если были созданы на fullcopy СБ. 

Maxim Elets
Я не читал

Рекомендую к прочтению

[quote="Maxim Elets"]Я не читал[/quote]
Рекомендую к прочтению

Maxim Elets
а что он утверждает, jopa123 это хорошо?

Код должен сам себя документировать

[quote="Maxim Elets"]а что он утверждает, jopa123 это хорошо?[/quote]
Код должен сам себя документировать

Gres
Maxim Elets
а что он утверждает, jopa123 это хорошо?

Код должен сам себя документировать

вот именно, но, когда есть jopa123 + коммент это хорошо, а когда просто jopaq1 это плохо

[quote="Gres"][quote="Maxim Elets"]а что он утверждает, jopa123 это хорошо?[/quote]
Код должен сам себя документировать[/quote]
вот именно, но, когда есть jopa123 + коммент это хорошо, а когда просто jopaq1 это плохо

Меня в последнее время поражает уровень разработчиков!
Люди думают, если нашли пример в сети, скопировали, поменяли названия переменных, то им больше не надо учиться!

Меня в последнее время поражает уровень разработчиков!
Люди думают, если нашли пример в сети, скопировали, поменяли названия переменных, то им больше не надо учиться!

Maxim Elets
вот именно, но, когда есть jopa123 + коммент это хорошо, а когда просто jopaq1 это плохо

Название переменной + 10 строк комментариев над ней, зачем она нужна и где она используется, то вообще будет отлично!

[quote="Maxim Elets"]вот именно, но, когда есть jopa123 + коммент это хорошо, а когда просто jopaq1 это плохо[/quote]
Название переменной + 10 строк комментариев над ней, зачем она нужна и где она используется, то вообще будет отлично!

Gres
Они даже не заработают на проде, если были созданы на fullcopy СБ.

так все-таки, правда или не правда что у fullcopy СБ одинаковые АйДи с Продом?

но даже если это и так, то все равно такие АйДи в теории можно бы использовать только для записей, которые существовали в Проде на момент создания fullcopy СБ.

[quote="Gres"]Они даже не заработают на проде, если были созданы на fullcopy СБ.[/quote]

так все-таки, правда или не правда что у fullcopy СБ одинаковые АйДи с Продом?

но даже если это и так, то все равно такие АйДи в теории можно бы использовать только для записей, которые существовали в Проде на момент создания fullcopy СБ.

Ребята, читайте SICP!

Ребята, читайте SICP!

Den Brown
но даже если это и так, то все равно такие АйДи в теории можно бы использовать только для записей, которые существовали в Проде на момент создания fullcopy СБ.

Абсолютно точно!

[quote="Den Brown"]но даже если это и так, то все равно такие АйДи в теории можно бы использовать только для записей, которые существовали в Проде на момент создания fullcopy СБ.[/quote]
Абсолютно точно!

Gres
Den Brown
но даже если это и так, то все равно такие АйДи в теории можно бы использовать только для записей, которые существовали в Проде на момент создания fullcopy СБ.

Абсолютно точно!


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

[quote="Gres"][quote="Den Brown"]но даже если это и так, то все равно такие АйДи в теории можно бы использовать только для записей, которые существовали в Проде на момент создания fullcopy СБ.[/quote]
Абсолютно точно![/quote]
 
ага, значит все так одинаковы у уже существовавших записей. Хорошо, что у нас этого никто не знает, а то началась бы хард-код эпидемия.

Опрос:
Кто-то ревьювит ваш код?

Опрос:
Кто-то ревьювит ваш код?

Gres
Давайте соберем те вещи (примеры кода), которые никогда не стоит использовать.
1. Ни в коем случае не используйте хардкод.
Как можно захардкодить строку JSON'a, в которой куча id, а потом десериализовать его и вставить в БД.
Как такое может придти в голову?
Кст. судя по комментариям в коде, этот человек есть на форуме. Не буду разглашать имя, дабы не портить его репутацию здесь.

Рекламу главное не сделай.

[quote="Gres"]Давайте соберем те вещи (примеры кода), которые никогда не стоит использовать.
1. Ни в коем случае не используйте хардкод.
Как можно захардкодить строку JSON'a, в которой куча id, а потом десериализовать его и вставить в БД.
Как такое может придти в голову?
Кст. судя по комментариям в коде, этот человек есть на форуме. Не буду разглашать имя, дабы не портить его репутацию здесь.[/quote]
Рекламу главное не сделай.

Gres
Maxim Elets
вот именно, но, когда есть jopa123 + коммент это хорошо, а когда просто jopaq1 это плохо

Название переменной + 10 строк комментариев над ней, зачем она нужна и где она используется, то вообще будет отлично!

ну тогда никогда так не не делайте)

Gres
Ребята, читайте SICP!

Мне уже интересно посмотреть на те решения, которые вы пишите на СФ, посмотреть на чистый, понятный код)))


Gres
Меня в последнее время поражает уровень разработчиков!
Люди думают, если нашли пример в сети, скопировали, поменяли названия переменных, то им больше не надо учиться!

то что нашли пример, это уже огромный плюс. был у нас на работе(.net) один чел, знал на собеседовании все на уровне лида, а как дошло дело прикрутить календарик jquery - 2 недели делал -__-

[quote="Gres"][quote="Maxim Elets"]вот именно, но, когда есть jopa123 + коммент это хорошо, а когда просто jopaq1 это плохо[/quote]
Название переменной + 10 строк комментариев над ней, зачем она нужна и где она используется, то вообще будет отлично![/quote]
ну тогда никогда так не не делайте)

[quote="Gres"]Ребята, читайте SICP![/quote]

Мне уже интересно посмотреть на те решения, которые вы пишите на СФ, посмотреть на чистый, понятный код)))


[quote="Gres"]Меня в последнее время поражает уровень разработчиков! 
Люди думают, если нашли пример в сети, скопировали, поменяли названия переменных, то им больше не надо учиться![/quote]
то что нашли пример, это уже огромный плюс. был у нас на работе(.net) один чел, знал на собеседовании все на уровне лида, а как дошло дело прикрутить календарик jquery - 2 недели делал -__-

Sergey Prichepo
Рекламу главное не сделай.

О чем ты?

[quote="Sergey Prichepo"]Рекламу главное не сделай.[/quote]
О чем  ты?

Maxim Elets
Мне уже интересно посмотреть на те решения, которые вы пишите на СФ, посмотреть на чистый, понятный код)))

Ну да, можешь сказать, что у меня ООП головного мозга.
Каждому свое!

[quote="Maxim Elets"]Мне уже интересно посмотреть на те решения, которые вы пишите на СФ, посмотреть на чистый, понятный код)))[/quote]
Ну да, можешь сказать, что у меня ООП головного мозга.
Каждому свое!

Maxim Elets
ну тогда никогда так не не делайте)

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

[quote="Maxim Elets"]ну тогда никогда так не не делайте)[/quote]
Делайте как угодно, просто, что вы скажете, когда размер файлы вырастает до 10000 строк.
Какое время вам понадобится на фикс баги в коде? 

Maxim Elets
Мне уже интересно посмотреть на те решения, которые вы пишите на СФ, посмотреть на чистый, понятный код)))

На самом деле зря смеетесь, я если что свидетель.
Хотя видел людей с куда более поздней стадией ООП головного мозга (как тут выше написано)

[quote="Maxim Elets"]
Мне уже интересно посмотреть на те решения, которые вы пишите на СФ, посмотреть на чистый, понятный код)))
[/quote]
На самом деле зря смеетесь, я если что свидетель.
Хотя видел людей с куда более поздней стадией ООП головного мозга (как тут выше написано)

Maxim Elets
то что нашли пример, это уже огромный плюс. был у нас на работе(.net) один чел, знал на собеседовании все на уровне лида, а как дошло дело прикрутить календарик jquery - 2 недели делал -__-

Умение гуглить сейчас очень важно.

[quote="Maxim Elets"]то что нашли пример, это уже огромный плюс. был у нас на работе(.net) один чел, знал на собеседовании все на уровне лида, а как дошло дело прикрутить календарик jquery - 2 недели делал -__- [/quote]
Умение гуглить сейчас очень важно.

Sergey Prichepo
Gres
Давайте соберем те вещи (примеры кода), которые никогда не стоит использовать.
1. Ни в коем случае не используйте хардкод.
Как можно захардкодить строку JSON'a, в которой куча id, а потом десериализовать его и вставить в БД.
Как такое может придти в голову?
Кст. судя по комментариям в коде, этот человек есть на форуме. Не буду разглашать имя, дабы не портить его репутацию здесь.

Смотри как совпало ну просто мой тест один в один который не так давно писал для одной компании Если ты конечно про меня ?

читать просто надо всю летну!

[quote="Sergey Prichepo"][quote="Gres"]Давайте соберем те вещи (примеры кода), которые никогда не стоит использовать.
1. Ни в коем случае не используйте хардкод.
Как можно захардкодить строку JSON'a, в которой куча id, а потом десериализовать его и вставить в БД.
Как такое может придти в голову?
Кст. судя по комментариям в коде, этот человек есть на форуме. Не буду разглашать имя, дабы не портить его репутацию здесь.[/quote]
Смотри как совпало ну просто мой тест один в один который не так давно писал для одной компании :) Если ты конечно про меня ?[/quote]
читать просто надо всю летну!

Sergey Prichepo
читать просто надо всю летну!

Ты хочешь, чтобы на форуме тебя зарекламировали?
Тут, наверно, вопрос к Дмитрию, я думаю, это выльется тебе в определенную сумму.

[quote="Sergey Prichepo"]читать просто надо всю летну![/quote]
Ты хочешь, чтобы на форуме тебя зарекламировали?
Тут, наверно, вопрос к Дмитрию, я думаю, это выльется тебе в определенную сумму.

Gres
Maxim Elets
то что нашли пример, это уже огромный плюс. был у нас на работе(.net) один чел, знал на собеседовании все на уровне лида, а как дошло дело прикрутить календарик jquery - 2 недели делал -__-

Умение гуглить сейчас очень важно.

умение гуглить иногда гораздо важнее теоретических знаний

[quote="Gres"][quote="Maxim Elets"]то что нашли пример, это уже огромный плюс. был у нас на работе(.net) один чел, знал на собеседовании все на уровне лида, а как дошло дело прикрутить календарик jquery - 2 недели делал -__- [/quote]
Умение гуглить сейчас очень важно.[/quote]

умение гуглить иногда гораздо важнее теоретических знаний

Maxim Elets
умение гуглить иногда гораздо важнее теоретических знаний

Кст, от чего повыщается ваша самооценка от изящности придуманного решения или от сумму, которую вам дают за конечный результат?

[quote="Maxim Elets"]умение гуглить иногда гораздо важнее теоретических знаний[/quote]
Кст, от чего повыщается ваша самооценка от изящности придуманного решения или от сумму, которую вам дают за конечный результат?

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

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

Sergey Prichepo
Да нет спасибо своей рекламы хватает,но если ты про мой код тогда можешь сразу говорить,я делал тест где вот вообще все один в один сходится там было все к месту.

Особенно на проде :)

[quote="Sergey Prichepo"]Да нет спасибо своей рекламы хватает,но если ты про мой код тогда можешь сразу говорить,я делал тест где вот вообще все один в один сходится там было все к месту.[/quote]
Особенно на проде :)

Понянто только флудить умеем.

Понянто только флудить умеем.

Gres
Maxim Elets
умение гуглить иногда гораздо важнее теоретических знаний

Кст, от чего повыщается ваша самооценка от изящности придуманного решения или от сумму, которую вам дают за конечный результат?

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

Важные решения нужно продумывать на этапе проектирования, а не за день до релиза.

Sergey Prichepo
Да нет спасибо своей рекламы хватает,но если ты про мой код тогда можешь сразу говорить,я делал тест где вот вообще все один в один сходится там было все к месту.

Ты погодь, сейчас окажется что после тебя кто-то правил классы, а тесты не поправил, но в итоге валятся же тесты, значит ты и виноват))

[quote="Gres"][quote="Maxim Elets"]умение гуглить иногда гораздо важнее теоретических знаний[/quote]
Кст, от чего повыщается ваша самооценка от изящности придуманного решения или от сумму, которую вам дают за конечный результат?[/quote]

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

Важные решения нужно продумывать на этапе проектирования, а не за день до релиза.

[quote="Sergey Prichepo"]Да нет спасибо своей рекламы хватает,но если ты про мой код тогда можешь сразу говорить,я делал тест где вот вообще все один в один сходится там было все к месту.[/quote]

Ты погодь, сейчас окажется что после тебя кто-то правил классы, а тесты не поправил, но в итоге валятся же тесты, значит ты и виноват))

Maxim Elets
Важные решения нужно продумывать на этапе проектирования, а не за день до релиза.

Правильно, а про день релиза никто и не говорит!

[quote="Maxim Elets"]Важные решения нужно продумывать на этапе проектирования, а не за день до релиза.[/quote]
Правильно, а про день релиза никто и не говорит!

Maxim Elets
Ты погодь, сейчас окажется что после тебя кто-то правил классы, а тесты не поправил, но в итоге валятся же тесты, значит ты и виноват))

Лол, да
Особенно, когда на дев-инстансе они не валятся

[quote="Maxim Elets"]Ты погодь, сейчас окажется что после тебя кто-то правил классы, а тесты не поправил, но в итоге валятся же тесты, значит ты и виноват))[/quote]
Лол, да
Особенно, когда на дев-инстансе они не валятся

Maxim Elets
один чел, знал на собеседовании все на уровне лида, а как дошло дело прикрутить календарик jquery - 2 недели делал -__-

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

[quote="Maxim Elets"]один чел, знал на собеседовании все на уровне лида, а как дошло дело прикрутить календарик jquery - 2 недели делал -__-[/quote]

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

Den Brown
рикрутить заняло примерно 2 недели. И то не все вопросы решены, например нет автоподгузки новых записей по мере перехода от месяца к месяцу (если не перерисовывать с вновь выквериными записями календарную секцию каждый раз при переходе с месяца на месяц).

календарик это я так дейтпикер называю) так что думаю мы о разных вещах) вы наверно о каком нить fullcalendar

[quote="Den Brown"]рикрутить заняло примерно 2 недели. И то не все вопросы решены, например нет автоподгузки новых записей по мере перехода от месяца к месяцу (если не перерисовывать с вновь выквериными записями календарную секцию каждый раз при переходе с месяца на месяц).[/quote]

календарик это я так дейтпикер называю) так что думаю мы о разных вещах) вы наверно о каком нить fullcalendar

Maxim Elets
календарик это я так дейтпикер называю) так что думаю мы о разных вещах) вы наверно о каком нить fullcalendar

понятно. вы о Jquery UI-ишном дейтпикере (ну может и о каком более кастомном). Я о fullcalendar плагине

[quote="Maxim Elets"]календарик это я так дейтпикер называю) так что думаю мы о разных вещах) вы наверно о каком нить fullcalendar[/quote]

понятно. вы о Jquery UI-ишном дейтпикере (ну может и о каком более кастомном). Я о fullcalendar плагине

Den Brown
Я о fullcalendar плагине

Неплохая штука, приходилось кастомизировать.

[quote="Den Brown"]Я о fullcalendar плагине[/quote]
Неплохая штука, приходилось кастомизировать.

Gres
приходилось кастомизировать.

в общем ситуация там такая.

Эвенты (которые есть наши СФ записи) одномоментно "грузятся" в Календарь либо просто разматываемание их Репитором, либо приходят JSONом (там была веселая проблемка с этим, слово end (or Start) зарезервирован в Апексе, пришлом перешивать объекты в JS).

А что есть отображение записей в календарной сетке? Это просто список такой. А если список - то каковы его пределы? Никак нельзя оставлять его без контроля.

так вот если евенты разматываются Рипитором, то получается что код упадет при лимите ВФ Листа или итераци Репитора. Но даже если подгужать одномоментно JSONом - то все равно нужно "пагинировать" пришедшие евенты, разбивать на группы, по месяцам или тек месяц +\- еще месяц.

Но если подгужена только порция евентов, то как подгужать новые при переходе с месяца на месяц? Перерисовывая сетку-секцию или Аджаксом?

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

[quote="Gres"]приходилось кастомизировать.[/quote]

в общем ситуация там такая.

Эвенты (которые есть наши СФ записи) одномоментно "грузятся" в Календарь либо просто разматываемание их Репитором, либо приходят JSONом (там была веселая проблемка с этим, слово end (or Start) зарезервирован в Апексе, пришлом перешивать объекты в JS).

А что есть отображение записей в календарной сетке? Это просто список такой. А если список - то каковы его пределы? Никак нельзя оставлять его без контроля.

так вот если евенты разматываются Рипитором, то получается что код упадет при лимите ВФ Листа или итераци Репитора. Но даже если подгужать одномоментно JSONом - то все равно нужно "пагинировать" пришедшие евенты, разбивать на группы, по месяцам или тек месяц +\- еще месяц.

Но если подгужена только порция евентов, то как подгужать новые при переходе с месяца на месяц? Перерисовывая сетку-секцию или Аджаксом?

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

Gres
Maxim Elets
а что он утверждает, jopa123 это хорошо?

Код должен сам себя документировать

Как раз работаю над этим.

[quote="Gres"][quote="Maxim Elets"]а что он утверждает, jopa123 это хорошо?[/quote]
Код должен сам себя документировать[/quote]

Как раз работаю над этим.

Gres
Ты хочешь, чтобы на форуме тебя зарекламировали?
Тут, наверно, вопрос к Дмитрию, я думаю, это выльется тебе в определенную сумму.

у меня тут все бесплатно, все для людей, все для вас, дорогие форумане.
Хотите себя разрекламировать? Все в ваших руках
- личная страница с информацией (aka можно использовать как резюме)
- статьи в блоге
- активность на форуме
Сейчас еще одна фишка на подходе.

[quote="Gres"]Ты хочешь, чтобы на форуме тебя зарекламировали? 
Тут, наверно, вопрос к Дмитрию, я думаю, это выльется тебе в определенную сумму.[/quote]
:D у меня тут все бесплатно, все для людей, все для вас, дорогие форумане. 
Хотите себя разрекламировать? Все в ваших руках :D
- личная страница с информацией (aka можно использовать как резюме)
- статьи в блоге
- активность на форуме
Сейчас еще одна фишка на подходе. :D 

Den Brown
Maxim Elets
один чел, знал на собеседовании все на уровне лида, а как дошло дело прикрутить календарик jquery - 2 недели делал -__-

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

Я смотрю тут очень многие вместе работают и решили выплеснуть эмоции на <noname> товарища?

UPD: дочитал дальше - не вместе работаете, просто совпало.

Была бы у меня в свое время такая возможность, сколько бы я гнева бы выплеснул. А так носил все в себе

Тема просто огонь получилась!!!! Никогда такой активности не наблюдал и ничего не читал с таким интересом и улыбкой.

[quote="Den Brown"][quote="Maxim Elets"]один чел, знал на собеседовании все на уровне лида, а как дошло дело прикрутить календарик jquery - 2 недели делал -__-[/quote]

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

Я смотрю тут очень многие вместе работают и решили выплеснуть эмоции на <noname> товарища?

[i]UPD: дочитал дальше - не вместе работаете, просто совпало.[/i]

Была бы у меня в свое время такая возможность, сколько бы я гнева бы выплеснул. А так носил все в себе :)

:D Тема просто [b]огонь[/b] получилась!!!! Никогда такой активности не наблюдал и ничего не читал с таким интересом и улыбкой.


Den Brown
так вот если евенты разматываются Рипитором, то получается что код упадет при лимите ВФ Листа или итераци Репитора. Но даже если подгужать одномоментно JSONом - то все равно нужно "пагинировать" пришедшие евенты, разбивать на группы, по месяцам или тек месяц +\- еще месяц.

Но если подгужена только порция евентов, то как подгужать новые при переходе с месяца на месяц? Перерисовывая сетку-секцию или Аджаксом?

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

Помню, Maxim Elets, делал именно такую "красоту". Я думаю он будет не против поделиться опытом.
Результат получился супер!

[quote="Den Brown"]так вот если евенты разматываются Рипитором, то получается что код упадет при лимите ВФ Листа или итераци Репитора. Но даже если подгужать одномоментно JSONом - то все равно нужно "пагинировать" пришедшие евенты, разбивать на группы, по месяцам или тек месяц +\- еще месяц.

Но если подгужена только порция евентов, то как подгужать новые при переходе с месяца на месяц? Перерисовывая сетку-секцию или Аджаксом?

если есть рабочий код, то дайте плиз, как будет время - я почитаю с удовольствием.[/quote]

Помню, Maxim Elets, делал именно такую "красоту". Я думаю он будет не против поделиться опытом. 
Результат получился супер!

Dmitry Shnyrev
Den Brown
так вот если евенты разматываются Рипитором, то получается что код упадет при лимите ВФ Листа или итераци Репитора. Но даже если подгужать одномоментно JSONом - то все равно нужно "пагинировать" пришедшие евенты, разбивать на группы, по месяцам или тек месяц +\- еще месяц.

Но если подгужена только порция евентов, то как подгужать новые при переходе с месяца на месяц? Перерисовывая сетку-секцию или Аджаксом?

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

Помню, Maxim Elets, делал именно такую "красоту". Я думаю он будет не против поделиться опытом.
Результат получился супер!

То было полностью кастомное решение на backbone, если мы про одно и тоже)

[quote="Dmitry Shnyrev"][quote="Den Brown"]так вот если евенты разматываются Рипитором, то получается что код упадет при лимите ВФ Листа или итераци Репитора. Но даже если подгужать одномоментно JSONом - то все равно нужно "пагинировать" пришедшие евенты, разбивать на группы, по месяцам или тек месяц +\- еще месяц.

Но если подгужена только порция евентов, то как подгужать новые при переходе с месяца на месяц? Перерисовывая сетку-секцию или Аджаксом?

если есть рабочий код, то дайте плиз, как будет время - я почитаю с удовольствием.[/quote]

Помню, Maxim Elets, делал именно такую "красоту". Я думаю он будет не против поделиться опытом. 
Результат получился супер![/quote]

То было полностью кастомное решение на backbone, если мы про одно и тоже)

Maxim Elets
То было полностью кастомное решение на backbone, если мы про одно и тоже)

Я про последний проект с которого я ушел - timeline сетка, на которой показываются "не будем говорить что". Это конечно не календарь в чистом виде, но принцип тот же - показать данные в определенные промежуток времени и навигация по времени с подгрузкой/перегрузкой данных.

[quote="Maxim Elets"]То было полностью кастомное решение на backbone, если мы про одно и тоже)[/quote]
Я про последний проект с которого я ушел :) - timeline сетка, на которой показываются "не будем говорить что". Это конечно не календарь в чистом виде, но принцип тот же - показать данные в определенные промежуток времени и навигация по времени с подгрузкой/перегрузкой данных.

Это называется Agenda :)

Это называется Agenda :)

Меня бесит вот что.
Дали проект на доработку функционала.
Хочешь сделать все красиво, заюзать Label, разделить код и т.д. Но тебе говорят что это не надо, и мы не хотим что бы так было. И пошло поехало( Смотришь через год на проект в целом, где были сделаны сотни правок и доработок и волосы седеют. Понимаешь, что новому человеку в ЭТОМ разобраться будет крайне трудно. А ведь переделать уже поздно! Все завязано друг на друга.

Меня бесит вот что.
Дали проект на доработку функционала.
Хочешь сделать все красиво, заюзать Label, разделить код и т.д. Но тебе говорят что это не надо, и мы не хотим что бы так было. И пошло поехало( Смотришь через год на проект в целом, где были сделаны сотни правок и доработок и волосы седеют. Понимаешь, что новому человеку в ЭТОМ разобраться будет крайне трудно. А ведь переделать уже поздно! Все завязано друг на друга.  

Виктор Сенько
Меня бесит вот что.
Дали проект на доработку функционала.
Хочешь сделать все красиво, заюзать Label, разделить код и т.д. Но тебе говорят что это не надо, и мы не хотим что бы так было. И пошло поехало( Смотришь через год на проект в целом, где были сделаны сотни правок и доработок и волосы седеют. Понимаешь, что новому человеку в ЭТОМ разобраться будет крайне трудно. А ведь переделать уже поздно! Все завязано друг на друга.

Это проблема большинства компаний. Нужно организационно внедрять стандарты на все процессы (разработка, тестирование, разворачивание продукта на орге заказчика). Добро пожаловать в Agile.

[quote="Виктор Сенько"]Меня бесит вот что.
Дали проект на доработку функционала.
Хочешь сделать все красиво, заюзать Label, разделить код и т.д. Но тебе говорят что это не надо, и мы не хотим что бы так было. И пошло поехало( Смотришь через год на проект в целом, где были сделаны сотни правок и доработок и волосы седеют. Понимаешь, что новому человеку в ЭТОМ разобраться будет крайне трудно. А ведь переделать уже поздно! Все завязано друг на друга.[/quote]

Это проблема большинства компаний. Нужно организационно внедрять стандарты на все процессы (разработка, тестирование, разворачивание продукта на орге заказчика). Добро пожаловать в Agile.

wilder
Это проблема большинства компаний. Нужно организационно внедрять стандарты на все процессы (разработка, тестирование, разворачивание продукта на орге заказчика). Добро пожаловать в Agile.

А для этого нужны опытные архитекторы или очень опытные разработчики, которые уже занимались вопросами разработки архитектуры приложения (а их просто так не найдешь )
А в 90% компаний - нашли разработчика, который умеет разрабатывать, он и разрабатывает. Отлично и быстно разрабатывает. Но млин через полгода понимает что надо было изначально идти другим путем
Мне кажется идеально или даже хорошо спроектированных и разработанных приложений не существует Это миф.

[quote="wilder"]Это проблема большинства компаний. Нужно организационно внедрять стандарты на все процессы (разработка, тестирование, разворачивание продукта на орге заказчика). Добро пожаловать в Agile.[/quote]
А для этого нужны опытные архитекторы или очень опытные разработчики, которые уже занимались вопросами разработки архитектуры приложения (а их просто так не найдешь :) )
А в 90% компаний - нашли разработчика, который умеет разрабатывать, он и разрабатывает. Отлично и быстно разрабатывает. Но млин через полгода понимает что надо было изначально идти другим путем :) 
Мне кажется идеально или даже хорошо спроектированных и разработанных приложений не существует :D Это миф.

Dmitry Shnyrev
Мне кажется идеально или даже хорошо спроектированных и разработанных приложений не существует Это миф.

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

[quote="Dmitry Shnyrev"]Мне кажется идеально или даже хорошо спроектированных и разработанных приложений не существует Это миф.[/quote]
Хорощо спроектированные приложения существуют.
Также есть хорошие команды разаработчиков.
Есть люди которые умееют наладить процесс.
В общем разработкой должен заниматься не один человек, не два и не три, конечно, зависит от проекта и задач.
Но, когда есть бизнесс аналитик, менеджер, ахитектор, тим лид, скарам мастер, клиентские и серверные разработчики, спец по БД, админ - это правда круто. Работать в такой команде одно удовольствие.

Ну ладно, проблемы FullCalendar как-нибудь обсудим в другой теме, эта не очень подходящая.

Ну ладно, проблемы FullCalendar как-нибудь обсудим в другой теме, эта не очень подходящая.

Чтобы оживить тему(незнаю почему), напишу что меня сбесило вчера:
1. Кто-то сделал изменение в логике, и потом запутсил тести. Проблема в том что потом етот человек удалил тести которие фейлились.

2. После моих изменений в логике пришлось поправлять тести, так як заметил, что асерти несовсем коректно написани, в асерте нужно писать сначала Expected value а потом Actual value, но человек которий писал тести, етого видимо не знал, и писал раз так, а раз так(весело было разбираться, что и как).

А некоторие тести вообще были без асертов, и виглядили оооочень интерресно:

static testMethod void test1() {
try {
callMethod1();
} catch (Exception ex) {
}
}

Чтобы оживить тему(незнаю почему), напишу что меня сбесило вчера:
1. Кто-то сделал изменение в логике, и потом запутсил тести. Проблема в том что потом етот человек удалил тести которие фейлились.

2. После моих изменений в логике пришлось поправлять тести, так як заметил, что асерти несовсем коректно написани, в асерте нужно писать сначала Expected value а потом Actual value, но человек которий писал тести, етого видимо не знал, и писал раз так, а раз так(весело было разбираться, что и как). 

А некоторие тести вообще были без асертов, и виглядили оооочень интерресно:

[code]
  static testMethod void test1() {
    try {
      callMethod1();
    } catch (Exception ex) {
    }
  }
[/code]

Alex Tsitsura
try {
callMethod1();
} catch (Exception ex) {
}

Вот это реально круто! Не знал что так можно в тестах делать

[quote="Alex Tsitsura"]try {
      callMethod1();
    } catch (Exception ex) {
    }[/quote]
Вот это реально круто! Не знал что так можно в тестах делать :D 

а самое интересное в том что етот тест фейлился

Я добавил в логику все лиш 1 SOQL и 1 DML, и все System.LimitException, а он как раз и catch'ем не перехвативается. Прийшлось еще и метод переделивать, кто-то оставиль приколный форик, в котором на 250 строк написано ифов, в каждом из которих селект и инсерт.

а самое интересное в том что етот тест фейлился

Я добавил в логику все лиш 1 SOQL и 1 DML, и все System.LimitException, а он как раз и catch'ем не перехвативается. Прийшлось еще и метод переделивать, кто-то оставиль приколный форик, в котором на 250 строк написано ифов, в каждом из которих селект и инсерт.

Вот скажите, для кого вы пишите код?
Вы думаете, что не только вам придется с ним работать?

Вот скажите, для кого вы пишите код?
Вы думаете, что не только вам придется с ним работать?

Снова "хороший" код?
На прошлой работе достался легаси php-проект. (Gres тоже успел принять участие)
Так вместо того, чтобы как можно раньше уйти от того ужаса, что уже был.
Мы по сути начали все прикручивать по горизонтали, т.к. сказали, что нужно главное доделать в течение месяца, а уж потом-то точно все красиво сделаем
Угадайте как все затянулось и когда настал момент, в который нам дали время всё красиво переделать?
Это я к тому, что то что нам досталось вроде работало, но было абсолютно не расширяемым. А заказчику-то всё равно, работает же.

Снова "хороший" код? :)
На прошлой работе достался легаси php-проект. (Gres тоже успел принять участие)
Так вместо того, чтобы как можно раньше уйти от того ужаса, что уже был. 
Мы по сути начали все прикручивать по горизонтали, т.к. сказали, что нужно главное доделать в течение месяца, а уж потом-то точно все красиво сделаем :)
Угадайте как все затянулось и когда настал момент, в который нам дали время всё красиво переделать?
Это я к тому, что то что нам досталось вроде работало, но было абсолютно не расширяемым. А заказчику-то всё равно, работает же.

Как часто вы работаете с легаси кодом?

Как часто вы работаете с легаси кодом?

Gres
Как часто вы работаете с легаси кодом?

Да постоянно. И первое что делаю когда принимаю код, беру время на рефакторинг. За это время обычно успеваю и логику понять и очевидные косяки переделать.

[quote="Gres"]Как часто вы работаете с легаси кодом?[/quote]

Да постоянно. И первое что делаю когда принимаю код, беру время на рефакторинг. За это время обычно успеваю и логику понять и очевидные косяки переделать.

wilder
Gres
Как часто вы работаете с легаси кодом?

Да постоянно. И первое что делаю когда принимаю код, беру время на рефакторинг. За это время обычно успеваю и логику понять и очевидные косяки переделать.


Сколько времени у тебя это занимает?

[quote="wilder"][quote="Gres"]Как часто вы работаете с легаси кодом?[/quote]

Да постоянно. И первое что делаю когда принимаю код, беру время на рефакторинг. За это время обычно успеваю и логику понять и очевидные косяки переделать.[/quote]
Сколько времени у тебя это занимает?

wilder
И первое что делаю когда принимаю код, беру время на рефакторинг. За это время обычно успеваю и логику понять и очевидные косяки переделать.

И это правильно!
Просто некоторые любят еще сверху костылей написать, зачем приводить код в порядок, если бага/фича небольшая, а потом снова баг и еще и еще, и так в геометрической прогрессии, в итоге код СОВЕРШЕННО нечитаем.
Задумайтесь об этом, когда пишете код.

[quote="wilder"]И первое что делаю когда принимаю код, беру время на рефакторинг. За это время обычно успеваю и логику понять и очевидные косяки переделать.[/quote]
И это правильно!
Просто некоторые любят еще сверху костылей написать, зачем приводить код в порядок, если бага/фича небольшая, а потом снова баг и еще и еще, и так в геометрической прогрессии, в итоге код СОВЕРШЕННО нечитаем.
Задумайтесь об этом, когда пишете код.

Gres
Сколько времени у тебя это занимает?

Это от обьема проекта зависит. Минимум 4-8 часов. Максимум что приходилось брать 5 рабочих дней.

[quote="Gres"]Сколько времени у тебя это занимает?[/quote]

Это от обьема проекта зависит. Минимум 4-8 часов. Максимум что приходилось брать 5 рабочих дней.

wilder
Gres
Сколько времени у тебя это занимает?

Это от обьема проекта зависит. Минимум 4-8 часов. Максимум что приходилось брать 5 рабочих дней.


Круто, когда тебе могут дать столько времени.

[quote="wilder"][quote="Gres"]Сколько времени у тебя это занимает?[/quote]

Это от обьема проекта зависит. Минимум 4-8 часов. Максимум что приходилось брать 5 рабочих дней.[/quote]
Круто, когда тебе могут дать столько времени.

Хорошо, если заказчик понимает что это нужно.
А так правильно RasMisha сказал

RasMisha
А заказчику-то всё равно, работает же.

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

Хорошо, если заказчик понимает что это нужно.
А так правильно RasMisha сказал
[quote="RasMisha"]А заказчику-то всё равно, работает же.[/quote]
Для них то что внутри - черная коробка, за которую кстати заплатили большие деньги.

Dmitry Shnyrev
черная коробка, за которую кстати заплатили большие деньги.

Далеко не факт

[quote="Dmitry Shnyrev"]черная коробка, за которую кстати заплатили большие деньги.[/quote]
Далеко не факт

Gres
Вот скажите, для кого вы пишите код?
Вы думаете, что не только вам придется с ним работать?

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

У меня свои предпочтения в архитектуре кода, у тебя другие, а у кого-то просто опыта пока не хватает.
Так что проблема чужого кода будет всегда и просто с этим надо смириться.

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

[quote="Gres"]Вот скажите, для кого вы пишите код? 
Вы думаете, что не только вам придется с ним работать?[/quote]

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

У меня свои предпочтения в архитектуре кода, у тебя другие, а у кого-то просто опыта пока не хватает.
Так что проблема чужого кода будет всегда и просто с этим надо смириться.

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

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

Суть в том, что оно всегда не работает/работает неправильно.

[quote="Dmitry Shnyrev"]А по поводу переписывать код - на это еще надо решиться. Если например не просят сделать это специально, то я предпочитаю чужой код не трогать без явной необходимости. Нафига тебе брать на себя ответственность за то что накодили до тебя если оно работает? [/quote]
Суть в том, что оно всегда не работает/работает неправильно.

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

Я не про подходы, а про элементарные вещи, их то уж нужно соблюдать.

[quote="Dmitry Shnyrev"]Это опять же возвращаясь к тому что мы так жарко обсуждали про писать код проще или по другому.
Программисты разные и у каждого разный подход.
Никогда всем не угодишь.[/quote]
Я не про подходы, а про элементарные вещи, их то уж нужно соблюдать.

Gres
Суть в том, что оно всегда не работает/работает неправильно.

:)))
если оно не работает/работает неправильно почему заказчик про это сам не говорит и не платит деньги чтобы это починить? Значит его все устраивает, несмотря на то что ты считаешь что оно неправильно работает.
Это уже не наши проблемы. Другие дело что если эти проблемы мешают нам работать, то их надо решать.
А не так - код плохо написан надо его переписать.

[quote="Gres"]Суть в том, что оно всегда не работает/работает неправильно.[/quote]
:)))
если оно не работает/работает неправильно почему заказчик про это сам не говорит и не платит деньги чтобы это починить? Значит его все устраивает, несмотря на то что ты считаешь что оно неправильно работает.
Это уже не наши проблемы. Другие дело что если эти проблемы мешают нам работать, то их надо решать.
А не так - код плохо написан надо его переписать.

Я обычно работаю так:
прихожу на проект - вижу что там жопа, закрываю на это глаза - у меня есть задача и время(деньги) - я ее решаю с нуля и пофиг на то что там может быть что-то похожее. Заказчик видит результат, ему пофиг как ты это написал. Зато у меня душа спокойна что я ничего чужого не сломал и мой код написан красиво (для меня). Если потом заказчик замечает что старое решение работает "хуже" твоего - просто говорю что там все плохо, у меня лучше это, это, это. Хотите чтобы остальное работало также платите.

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

Я обычно работаю так:
прихожу на проект - вижу что там жопа, закрываю на это глаза - у меня есть задача и время(деньги) - я ее решаю с нуля и пофиг на то что там может быть что-то похожее. Заказчик видит результат, ему пофиг как ты это написал. Зато у меня душа спокойна что я ничего чужого не сломал и мой код написан красиво (для меня). Если потом заказчик замечает что старое решение работает "хуже" твоего - просто говорю что там все плохо, у меня лучше это, это, это. Хотите чтобы остальное работало также платите.

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

Повторю, что это не касается того если придется что-то допиливать, переделывать. Тогда, да можно обсудить время на рефакторинг.

Повторю, что это не касается того если придется что-то допиливать, переделывать. Тогда, да можно обсудить время на рефакторинг.

Млин. Опять сорвался. Дал же себе слово не начинать спорить Не удержался .
Эта тема субъективная и зависит от ситуации. Так что каждый тут прав.

Млин. Опять сорвался. Дал же себе слово не начинать спорить :D Не удержался :D .
Эта тема субъективная и зависит от ситуации. Так что каждый тут прав.

Dmitry Shnyrev
если оно не работает/работает неправильно почему заказчик про это сам не говорит и не платит деньги чтобы это починить? Значит его все устраивает, несмотря на то что ты считаешь что оно неправильно работает.
Это уже не наши проблемы. Другие дело что если эти проблемы мешают нам работать, то их надо решать.
А не так - код плохо написан надо его переписать.

Почему же - платит.

[quote="Dmitry Shnyrev"]если оно не работает/работает неправильно почему заказчик про это сам не говорит и не платит деньги чтобы это починить? Значит его все устраивает, несмотря на то что ты считаешь что оно неправильно работает.
Это уже не наши проблемы. Другие дело что если эти проблемы мешают нам работать, то их надо решать.
А не так - код плохо написан надо его переписать. [/quote]
Почему же - платит.

Gres
Почему же - платит.

Ну кто платит, тот и музыку заказывает! Клиент всегда прав .

[quote="Gres"]Почему же - платит.[/quote]
Ну кто платит, тот и музыку заказывает! Клиент всегда прав :D .

Хочу тоже немного пожаловаться.

class SomeClass()
{
if (someVar)
{
...
}
else
{
...
}
}

Нафига так делаеть (я про скобки {} )? Как такой код можно читать? У меня в экран только маленькая часть исходников помещается.

Хочу тоже немного пожаловаться.

[code]
class SomeClass()
{
    if (someVar)
    {
        ...
    }
    else
    {
        ...
    }
}
[/code]

Нафига так делаеть (я про скобки {} )? Как такой код можно читать? У меня в экран только маленькая часть исходников помещается.

Dmitry Shnyrev
Хочу тоже немного пожаловаться.

class SomeClass()
{
if (someVar)
{
...
}
else
{
...
}
}

Нафига так делаеть (я про скобки {} )? Как такой код можно читать? У меня в экран только маленькая часть исходников помещается.


c# стиль

[quote="Dmitry Shnyrev"]Хочу тоже немного пожаловаться.

[code]
class SomeClass()
{
    if (someVar)
    {
        ...
    }
    else
    {
        ...
    }
}
[/code]

Нафига так делаеть (я про скобки {} )? Как такой код можно читать? У меня в экран только маленькая часть исходников помещается.[/quote]
c# стиль

Gres
c# стиль

Млин, по ходу это самое безобидное в этом проекте. А проект то боевой :(.
По ходу какой-то товарищ тупо учился на этом проекте - вижу что чувак с опытом - всякие ООП штучки, но мля, все что можно было сделать неправильно в salesforce сделано. Но это еще цветочки - на то что творится в visualforce страницах без слез смотреть невозможно. Мало того что товарищ не знает всех прелестей VF, так еще и по ходу Javascript у него 0.
Думал немного поправить страницу в итоге переписал полностью. Надо было сразу писать с нуля - быстрее бы вышло.
Вот реально аж жалко стало заказчика.

[quote="Gres"]c# стиль[/quote]
Млин, по ходу это самое безобидное в этом проекте. А проект то боевой :(.
По ходу какой-то товарищ тупо учился на этом проекте - вижу что чувак с опытом - всякие ООП штучки, но мля, все что можно было сделать неправильно в salesforce сделано. Но это еще цветочки - на то что творится в visualforce страницах без слез смотреть невозможно. Мало того что товарищ не знает всех прелестей VF, так еще и по ходу Javascript у него 0.
Думал немного поправить страницу в итоге переписал полностью. Надо было сразу писать с нуля - быстрее бы вышло.
Вот реально аж жалко стало заказчика.

Dmitry Shnyrev
Gres
c# стиль

Млин, по ходу это самое безобидное в этом проекте. А проект то боевой :(.
По ходу какой-то товарищ тупо учился на этом проекте - вижу что чувак с опытом - всякие ООП штучки, но мля, все что можно было сделать неправильно в salesforce сделано. Но это еще цветочки - на то что творится в visualforce страницах без слез смотреть невозможно. Мало того что товарищ не знает всех прелестей VF, так еще и по ходу Javascript у него 0.
Думал немного поправить страницу в итоге переписал полностью. Надо было сразу писать с нуля - быстрее бы вышло.
Вот реально аж жалко стало заказчика.

При чем тут заказчик то?
Наверно, тебе придется себя пожалеть, тебе же все исправлять)

[quote="Dmitry Shnyrev"][quote="Gres"]c# стиль[/quote]
Млин, по ходу это самое безобидное в этом проекте. А проект то боевой :(.
По ходу какой-то товарищ тупо учился на этом проекте - вижу что чувак с опытом - всякие ООП штучки, но мля, все что можно было сделать неправильно в salesforce сделано. Но это еще цветочки - на то что творится в visualforce страницах без слез смотреть невозможно. Мало того что товарищ не знает всех прелестей VF, так еще и по ходу Javascript у него 0.
Думал немного поправить страницу в итоге переписал полностью. Надо было сразу писать с нуля - быстрее бы вышло.
Вот реально аж жалко стало заказчика.[/quote]
При чем тут заказчик то?
Наверно, тебе придется себя пожалеть, тебе же все исправлять)

Как раз мне то чего себя жалеть? Мне это все переделывать не надо, мне пока за это не платят. Ну собственно и заказчик пока не знает что у него там под капотом, потому что штатных разработчиков у них нет, а старый по ходу ушел не очень по вежливому.
А если и попросят исправлять, то буду выставлять счет :). Так что мне наоборот может даже на руку.
А вообще кода функционала там не сильно много, я за день все разобрал по коду без объяснения даже функционала.
А заказчика жалко потому что он то платил за это же деньги, и наверное не малые.

Как раз мне то чего себя жалеть? Мне это все переделывать не надо, мне пока за это не платят. Ну собственно и заказчик пока не знает что у него там под капотом, потому что штатных разработчиков у них нет, а старый по ходу ушел не очень по вежливому.
А если и попросят исправлять, то буду выставлять счет :). Так что мне наоборот может даже на руку.
А вообще кода функционала там не сильно много, я за день все разобрал по коду без объяснения даже функционала.
А заказчика жалко потому что он то платил за это же деньги, и наверное не малые.