Раз пошла такая пьянка… Те кто начинают ООП с написания класса попадают на одни и те же грабли. Пишут суть обертку. Потом еще и еще. Выходят божественные объекты, делающие все и вся.
По хорошему, ООП должно писаться с интерфейсов взаимодействия (схемку набросать не помешает однозначно), т.е. с написания абстрактного объектного кода, через который видно взаимодействие между объектами.
А вся реализация обработки должна будет написана потом, когда интерфейс между объектами «устаканится». Над инкапсуляцией в этом случае, не нужно думать. Ясно, что все будет инкапсулировано, что не вошло в интерфейс.
Кстати в этом плане использование TDD — правильный путь. Тесты описывают поведение системы. Тесты пишутся до кода, давая понять, что же мы хотим от системы и не давая зациклится на какой-то мелочи реализации, пытаясь довести себя до оргазма идеальным кодом.
Пачему же пачему все канчается на у?
Мы так ждали обновленья, где же он венец творенья?
Не спешите обновляться вдруг придеся вам еб… ся?
Ждем мы версию побольше с css3 и потолще, чтоб хотела и могла,
И поменьше бы г… на…
Так. Я перечитал еще раз. В Lift шаблонах нет логики. Некоторые куски HTML находятся в исходном коде приложения. Чтобы переверстать/доработать HTML сайта нужно переделать HTML шаблоны и HTML куски в исходном коде.
Так что, не все лучшее они почерпнули, не все… и шаблоны дизайнерам дружественные только из-за того что туда не включили циклы и условия, спорно…
У него проблемы будет с поиском вашего куска не в html шаблоне, а в исходном коде. И кто возьмет на себя ответственность что он не напортачит там? Удалит пару строчек и сайт заляжет.
А вдруг ему scala так понравится и он прямо в исходнике оставшиеся куски html верстки вставлять начнет?
Шаблоны содержат сниппеты в атрибутах класс. Это конечно доставляет, особенно реализация отложенной загрузки и др. Но логику уровня представления нужно держать в уровне представления. Без циклов и условий в шаблонах делать нечего. А мешать HTML/XML с кодом, извините.. override def fixedRender = {
<lift:form>
{
SHtml.text("", s => {
ChatServer ! s
SetValById("chat_box", "")
}, "id" -> "chat_box")
}
/>
</lift:form>
}
Очень хорошо написали. Проблема в том, что отрасль позволяет. Черный ящик с фичами и ладненько. Нет снипов, гостов и тому подобных вещей, через которые бы заставляли прогонять получившийся продукт. Стандарты, практики, методики есть, но они для команды разработки. На выходе все тот же черный ящик…
Ну начинается… Нет нормальных исполнителей в регионе? Неправда. В Туле есть огого компании, которые сделают и качественно и красиво. А вот, что с сайтом будет дальше зависит от вас. И развитие сайта должно быть заложено в его проект. В том числе найм штатного веб специалиста и что немаловажно — дизайнера. Такие проекты — живут.
Пример с ВТБ в тему, сайт разработанный, нарисованный и разработанный одними людьми, пущенный в плавание и развиваемый «кем то еще», может превратится в аморфного монстра через несколько месяцев.
Пароли можно собирать фильтруя снифферами http трафик. На стороне вашего провайдера админ может в свое удовольствие снифить пакеты. А трафик со спутникового интернета может собирать вообще любой.
Каждый раз открывая письмо с паролем, задумайтесь, по SSL протоколу ли вы получаете пакет. У российских почтовиков как то по прежнему с https не складывается. По дефолту ничего не шифруется.
А мои наблюдения таковы: те кто начинал с C++, либо остаются в отрасли либо вообще из нее уходят. И С++ больше преподают на профильных специальностях, в том числе яву и кучу других языков. Отсюда специалисты более широкого мировозрения. А pascal — на специальностях зачастую к програмированию не имеющих отношение, отсюда ощущения, что паскальщики тупят, хотя в плане типизации и ооп паскаль ИМХО гораздо лучше дисциплинирует.
В начале 2000-х гг. была популярна шутливая легенда о разразившейся перепалке между компаниями General Motors и Microsoft. Якобы глава Microsoft Билл Гейтс как-то публично заявил, что, если бы General Motors развивалась бы темпами компьютерной индустрии, то сейчас у нас были бы автомобили за $25 тыс., которые могли бы проезжать на одном галлоне по тысяче миль.
Говорят, что в ответ General Motors распространила пресс-релиз:
«Если бы General Motors разрабатывала технологии так же как Microsoft, то машины были бы такими:
1. Дважды в день машина ломалась бы без причины
2. Каждый раз, когда появлялась бы новая дорожная разметка, приходилось бы покупать новую машину.
3. Периодически прямо во время движения машина бы глохла. Чтобы ее завести, пришлось бы отъехать к обочине, закрыть все окна, выключить двигатель, завести его, открыть окна и только потом отправляться в путь.
4. Иногда во время совершения левого поворота машина бы глохла и отказывалась бы заводиться. Чтобы ее починить приходилось бы переустанавливать заново двигатель.
5. Пользоваться машиной в стандартной комплектации может только один пользователь. Чтоб одновременно разрешить пользование машиной нескольким пользователям, придется приобрести дополнительную программу и дополнительные сидения.
6. Apple тоже выпустил бы машину. Она бы ездила на солнечных батареях в пять раз быстрее машины Microsoft и в два раза надежнее, но при условии, что она может ездить лишь по 5% совместимых дорог.
7. В машине Microsoft датчики давления масла, температуры воды и заряда аккумулятора были бы заменены одним индикатором „сбой защиты“.
8. Подушки безопасности перед срабатыванием спрашивали бы подтверждения пользователя.
9. Периодически автомобиль без причин отказывался бы открывать двери. Для открытия необходимо одновременно потянуть за ручки всех дверей, повернуть ключ зажигания и удерживать антенну.
10. С приобретением автомобиля необходимо было бы покупать пакет встроенных карт. При попытке отключения этой опции мощность автомобиля снижается вдвое.
11. С выходом каждой новой модели автомобиля пользователям придется заново учиться водить, так как все приборы и элементы управления будут использоваться по-новому.
12. Чтобы заглушить мотор, надо будет нажать на кнопку „старт“.
А у меня материнка от большого брата через 2 года перестала работать, сдал в сервисный центр магазина где брал (крупный московский), там тоже вписали «следы воды», хотя конечно никакой воды не было. Они ее сами отправили в асусовский сервис. Там все бесплатно сделали несмотря на «заключение».
I ♥ Roy Fielding
По хорошему, ООП должно писаться с интерфейсов взаимодействия (схемку набросать не помешает однозначно), т.е. с написания абстрактного объектного кода, через который видно взаимодействие между объектами.
А вся реализация обработки должна будет написана потом, когда интерфейс между объектами «устаканится». Над инкапсуляцией в этом случае, не нужно думать. Ясно, что все будет инкапсулировано, что не вошло в интерфейс.
Кстати в этом плане использование TDD — правильный путь. Тесты описывают поведение системы. Тесты пишутся до кода, давая понять, что же мы хотим от системы и не давая зациклится на какой-то мелочи реализации, пытаясь довести себя до оргазма идеальным кодом.
Мы так ждали обновленья, где же он венец творенья?
Не спешите обновляться вдруг придеся вам еб… ся?
Ждем мы версию побольше с css3 и потолще, чтоб хотела и могла,
И поменьше бы г… на…
Так что, не все лучшее они почерпнули, не все… и шаблоны дизайнерам дружественные только из-за того что туда не включили циклы и условия, спорно…
Вот сниппеты — круто. Не спорю.
А вдруг ему scala так понравится и он прямо в исходнике оставшиеся куски html верстки вставлять начнет?
<input type="submit" value="Chat"/>Шаблоны содержат сниппеты в атрибутах класс. Это конечно доставляет, особенно реализация отложенной загрузки и др. Но логику уровня представления нужно держать в уровне представления. Без циклов и условий в шаблонах делать нечего. А мешать HTML/XML с кодом, извините..
override def fixedRender = {<lift:form>
{
SHtml.text("", s => {
ChatServer ! s
SetValById("chat_box", "")
}, "id" -> "chat_box")
}
/>
</lift:form>
}
Шаблоны, не являются необходимыми? да…
Генерировать html прямо из кода? Они это серьезно?
Пример с ВТБ в тему, сайт разработанный, нарисованный и разработанный одними людьми, пущенный в плавание и развиваемый «кем то еще», может превратится в аморфного монстра через несколько месяцев.
Примеров — миллион.
Каждый раз открывая письмо с паролем, задумайтесь, по SSL протоколу ли вы получаете пакет. У российских почтовиков как то по прежнему с https не складывается. По дефолту ничего не шифруется.
В начале 2000-х гг. была популярна шутливая легенда о разразившейся перепалке между компаниями General Motors и Microsoft. Якобы глава Microsoft Билл Гейтс как-то публично заявил, что, если бы General Motors развивалась бы темпами компьютерной индустрии, то сейчас у нас были бы автомобили за $25 тыс., которые могли бы проезжать на одном галлоне по тысяче миль.
Говорят, что в ответ General Motors распространила пресс-релиз:
«Если бы General Motors разрабатывала технологии так же как Microsoft, то машины были бы такими:
1. Дважды в день машина ломалась бы без причины
2. Каждый раз, когда появлялась бы новая дорожная разметка, приходилось бы покупать новую машину.
3. Периодически прямо во время движения машина бы глохла. Чтобы ее завести, пришлось бы отъехать к обочине, закрыть все окна, выключить двигатель, завести его, открыть окна и только потом отправляться в путь.
4. Иногда во время совершения левого поворота машина бы глохла и отказывалась бы заводиться. Чтобы ее починить приходилось бы переустанавливать заново двигатель.
5. Пользоваться машиной в стандартной комплектации может только один пользователь. Чтоб одновременно разрешить пользование машиной нескольким пользователям, придется приобрести дополнительную программу и дополнительные сидения.
6. Apple тоже выпустил бы машину. Она бы ездила на солнечных батареях в пять раз быстрее машины Microsoft и в два раза надежнее, но при условии, что она может ездить лишь по 5% совместимых дорог.
7. В машине Microsoft датчики давления масла, температуры воды и заряда аккумулятора были бы заменены одним индикатором „сбой защиты“.
8. Подушки безопасности перед срабатыванием спрашивали бы подтверждения пользователя.
9. Периодически автомобиль без причин отказывался бы открывать двери. Для открытия необходимо одновременно потянуть за ручки всех дверей, повернуть ключ зажигания и удерживать антенну.
10. С приобретением автомобиля необходимо было бы покупать пакет встроенных карт. При попытке отключения этой опции мощность автомобиля снижается вдвое.
11. С выходом каждой новой модели автомобиля пользователям придется заново учиться водить, так как все приборы и элементы управления будут использоваться по-новому.
12. Чтобы заглушить мотор, надо будет нажать на кнопку „старт“.