Табы говорите? Эт конечно хреново. Да. Что есть, то есть. Но, с другой стороны, вы только подумайте, ведь они же могли бы не оптимизировать и вставлять непосредсно пробел-лы!!!
PS: Сложно даже предствить сколько и как табов нужно удалить что бы уменшить размер страницы в 7 раз. Сложно даже предаставить где эти табы расставлялись... :-)
PSЗЫ: Похоже опять уважаемых хабравчан держат за конченных идиотов. :-)
Поймите правильно. Есть некоторая разница между анализом чужих ошибок и препарированием глупостей, которые делают новички. Ошибки это то, что делают квалифицированные люди, в силу того, что некий вопрос плохо освещён или часто встречается его неправильное понимание. Анализ их ошибок нас учит.
С другой стороны, есть просто абсолютно неквалифицированные люди, делающие первые шаги или просто неумные. Если вы занимаетесь их обучением, вы им можете указать на ошибки. Просто же тщательно знакомить всех с абсолютно дилетанской работой совершенно непонятно кого (ну не обучался чел, ну не прочёл вообще никакой книги... да мало ли причин) это банальная трата своего и чужого времени. Таких левых сайтов полинтернета. Никакой жизни не хватит.
Не устаю поражаться, на какую только херню человек не способен потратить свою единственную жизнь. Отрыть на каком то левом сайте, какой-то придурочный пэхапэшный код, трахаться с какими-то sts_put_opener() из дочернего ифрейма... сообщать их администраторам и ещё писать всю это поебень на хабр, делая слепки экранов, дабы отнять бесценное время уважаемых хабравчан.
Как будто вокруг нет мудрых книг и красивых женщин. :-)
Синглетон полезный и нужный паттерн для чётко очерченных случаев, тщательно описанных в его описании. Называть его антипаттерном, это как называть кухонный нож вредным инструментом на том простом основании, что им можно кого-то зарезать. Ну да, наверное можно, но если бы он сопровождался инструкцией, там было бы внятно написано, что им нужно картошку чистить. И только.
В противном случае большинство окружающих нас вещей можно было бы легко зачислить в антипаттерны. Авто, качели, табуретки... Антипаттерн – это неправильное использование нужной и полезной вещи. Из этого абсолютно никак не следует, что мы не должны знать и шарахаться правильного применения нужных и полезных вещей. :-)
Да. Спорить наверное не нужно, ибо DOKA сделал неплохое замечание. Я также когда читал, споткнулся на этом месте. Ну раз не многопоточный, то стало быть и желательно одним предложением написать почему он такой и добавить, что логично, разумеется, воткнуть synchronized и закрыть вопрос. Сославшись на то, что такой случай будет рассмотрен ниже и у него есть свой нюанс.
Второй момент который чуть резанул глаз, это фраза - Реализация Singleton в JAVA. Я не знаю прав я или нет с точки зрения моего интуитивного ощущения русского языка, но когда я вижу фразу ..В Java… я ожидаю, что это УЖЕ реализовано внутри самой платформы и человек просто описывает как там это сделано. Если же речь идёт о том как самому реализовать что-то средствами языка, я ожидаю увидеть оборот ...НА Java.. То есть - как мне реализовать это на языке Java.
Что же касается статьи в целом, то наверное это одна из самых толковых технических статей на Хабре за долгий период. Обычно люди, когда вставляют куски кода в статью, вырывают их из контекста и этот контекст не описывают. То есть пишут в духе ... я вот вчера ночью, лихорадочно кодируя (препарируя вирус...)... открыл для себя, что тут можно было вставить вот такой крутой оператор... а посему на утро хочу поделиться этим с хабра-людьми. Это всё хорошо, но... Что кодировал? Куда вставил? Зачем вставил и кому это нужно?
У вас действительно чётко и внятно описан ходовой и нужный паттерн, и приведены основные варианты его реализации с их плюсами и минусами. Статья логически закончена и реально полезна разработчику. Просто как букварь. Лан, не буду тут раcшаркиваться :-), но что хотел сказать, то сказал.
Почитал заметку. Замечательно, что появляются статьи посвящённые технологиям Java. Посему автору большой плюс. А теперь по сути статьи.
К сожалению, на мой взгляд, мы имеем стандартную проблему, когда некое изделие рассматривается вне того контекста и предназначения, для которого оно придумано. Точнее говоря, это предназначение очерчено очень схематично и, в итоге, ненавязчиво остаётся за кадром. Это проблема многих разработчиков, что они упускают ключевую концепцию, и с остервенением набрасываются на облизывание конкретных кусочков кода. :-)
Теперь, что касается портлетов. Технология не так уж и нова и придумывалась для того, что бы облегчить создание порталов. Откуда собственно и название. И вот тут, видимо, нужно о-очень явно оттенить, что же такое есть портал. К сожалению, как мне кажется, это слово уже давно имеет два смысла.
Первый смысл – бытовой. В этом смысле портал есть просто любой крупный тематический сайт, который постоянно (оперативно) обновляет свою информацию. Любой сайт, с более менее разношерстной информацией часто называют порталом. Городской портал, школьный портал.
А вот второй смысл – уже более технический. В этом смысле, порталом называется сайт, страницы которого, преимущественно, состоят из набора логически не связанных между собой кусочков. Логически не связанных! Вот это надо прибить гвоздями и уж затем, рассматривать плюсы или минусы данной технологии. Есть действительно сайты, в которых информация стуктурирована таким вот образом. В одном углу блок погоды, в другом биржевые новости, в третьем програма телепердач, а в четвёртом результаты скачек. Все эти кусочки никак не связаны между собой. Вот для того, что бы логически разделить создание этих кусков и придуманы портлеты.
И вот эти независимые портлеты не нужно путать с просто кусками сайта, которые очерчены лишь визуально. К примеру, строка поиска, является визуально очерченной компонентой, но не логически независимой. Ну потому, что она должна вывести результат в другую часть страницы. Которая, стало быть, от неё зависима.
Вот в контексте этого, становится понятно, почему нельзя “упрекать” портлеты в невозможности держать контроль над всей страницей или в том, что они плохо взаимодействуют между собой.
Если у вас части страниц сайта логически зависимы, вам просто не нужно использовать портлеты. Мы, к примеру, используем Wicket. Фреймворк, который даёт очень хороший и элегантный контроль над страницей, позволяя при этом иметь большое количество повторно используемых визуальных панелей. Которые в свою очередь опираются на бизнес классы аккуратно поддерживаемые Spring.
Отыменно. Теперь, сформулировав вопросы к вашему ответу, мы и получим примерный уровень беседы, который будет доступен заказчику.
Однако судя по заметке, вы должны были поинтересоваться будет ли использован экскаватор, имеется ли он в наличии или будет заказн у подрядчиков. И если есть в наличии, то позволит ли он копать грунт на нужную глубину. Заодно ознакомиться с портфолио экскаваторщика и стоимостью нормочаса его работы в вашей местности. Попутно прикинуть сколько нормочасов будет потрачено на ваш сарай и так далее...
Ну и что же я неправильно сказал? Вопросы над которыми стоит задумываться вы перечислили правильно, только в большей части они не могут быть поставлены заказчиком. А именно дя них, если я правильно понял, вы писали заметку.
Нда. Завумная и довольно бестолковая статья. Советы одного, чуть более опытного веб разработчика, другому, менее опытному разработчику и не дающие абсолютно никакой пользы для руководителя компании не связанной с ВЕБ.
Представил себе опытного строителя, руководителя небольшой строительной компании. Задумался как он будет отвечать на вопросы:
Какие возможности по управлению веб-продуктом вы оставите у себя, какие передадите сотрудникам, какие возложите на подрядчиков?(Что такое веб-продукт? Как я могу им управлять? Что могут с ним делать мои сотрудники? Что способны делать подрядчики и вообще какие они бывают в этих ваших ВЕБ-продуктах?)
...Прикиньте сколько человеко-месяцев нужно на производство нужного вам продукта, оцените цену оплаты 1 месяца труда квалифицированного специалиста в вашем регионе и добавьте налоги, аренда, связь, реклама и разумную прибыль...
----------------------------------------------------------
Да хер его знает сколько вам нужно человеко-месяцев, сколько это стоит и что такое для вас разумная прибыль.
...Дело в том, что сайтом редко занимается меньше 3 человек, поэтому трудоемкость нужно считать в человеко-днях или человеко-месяцах...
-----------------------------------------------------------
А вот кладку кирпича делает у мене один человек. Нафуя вам три на сайт. (ну для примера)
...передача всех имеющихся у вас и нужных для проекта материалов в удобоваримом виде...
-------------------------------------------------------------
Что такое удобоваривый вид? Раствор для цемента?
Дальше читать внимательно не стал.
Если кто со мной не согласен, то давайте перевернём ситуацию наоборот. Приходит ВЕБ разработчик к строителю на предмет - сарай построить. Тот ему даёт рекомендации:
- Решите какую строительную технику вы будете использовать. Определитесь какую вы закажете прямо у нас, а какую у подрядчиков. Тщательно оцените, что мы сможем сделать для вас сами, что вы, а чего передать подрядчикам.
- Выберите адекватных крановщиков, плотников, столяров, каменщиков и сантехников
- Тщательно оцените какие задачи в контексте сарая будут решать каменщик, сантехник, крановщик и плотник. Определитесь что и как будет контролировать прораб. Аккуратно пропишите все эти моменты в договоре. Имейте в виду, что прораб тратит на ваш сарай 15 часов в день. Если трезвый.
- Выберите адекватных исполнителей. Тех, кто уже правильно установил унитазы (имеет портфолио), правильно сделал кладку и правильно обтесал окно. Прикиньте сколько чаловеко-часов у них это заняло. Узнайте стоимость работы экскаваторщика, сварщика, электрика, сантехника, каменщика, плотника и прораба в вашем регионе. Добавьте их налоги, спиртное, интернет и сигареты.
Ну и так далее.
Не стоит упрекать людей в тотальном отсутствии перфекционизма. Они тактично дали понять, что с ума сходить не надо. Пока есть невалидные браузеры (не будем показывать пальцем), приходится держать невалидные страницы. Дабы нести светоч в массы и доносить свет даже до тех, кто... Ну вы поняли... :-)
Задумывался. Но не имея фактов придумывать и озвучивать разные объяснения - не хочу. А если то... А если это... Для начала оцениваем картину прямо так, как она подана. Далее смотрим по обстоятельствам.
PS: Карму вашу я ранее не трогал. Сейчас поднял. Пишите. Я не опускаю карму за то, что мнение человека не совпадает с моим. Или же прямо об этом говорю, если есть ещё некие причины.
Поддержка нашла подходящего по уровню клиента, на примере беседы с которым, можно было оттенить свои лучшие сапортовские навыки. Выдержку, глубокие технические знания, умение строить беседу... Ну и так далее.
Обратите внимание, сколько оскорблений клиенту было нанесено только в этой теме. Народ как с цепи сорвался. С завидным и непонятным энтузиазмом изыскивает любые способы поглумиться. Придумывает майки, надписи, обыгрывает фотки... Такое чуство, что это лично их этот человек оскорбил. Стадный инстинкт штука опасная.
Неа. Никаких нарушений условий предоставления связи там не было. Были сбои, которые провайдер, скорее всего, по договору, обязался оперативно устранять. И устранял. Ни один провайдер не будет явно гарантировать абсолютно бесперебойную работу годами. Это, банально, технически невозможно.
Опекунство также не причём. Это взрослый совершеннолетний человек, имеющий право тратить свои деньги так как ему вздумается. Ему можно поставить в вину оскорбления, но вопрос в том, какой вес будет это иметь. Особенно если он нездоров.
А вот факт публичного выкладывания информации провайдером - есть сильный морально-этический прецедент, который бьёт по его репутации. Даже если и не удаётся подвести такое нарушение под наказуемую статью, сам факт такой огласки бросает сильную тень.
Как аудиофил со стажем, давно пользующийся данной программой (тау), поясню зачем она нужна. Отличить MP3, сделанный с битрейтом 320 от оригинала, действительно очень сложно. Думаю, что уверенно и всегда это сможет сделать только музыкант, инструмент которого играет в музыкальной программе. Зато он, сделает это очень быстро. В силу того, что MP3 это не просто ограничение частотного диапазона записи. Это, по сути, вырезание из записи тех частотных кусков, которые большинство людей в некоторых ситуациях - не слышат. Скажем после громких звуков (барабан ухнул), ухо не слышит некоторых частот несколько миллисекунд.. Ну и так далее. Таких эмпирических правил много и называется это всё словом - психофизическое кодирование.
Итак, покупаю я диск. У меня нет другого такого диска, заведомо оригинального (не прошедшего MP3 обработку). Я возможно и слышу дефекты, но... я не знаю их причины. То ли так в студии записали (а записи разные бывают), то ли музыкальный ряд был обработан MP3 кодированием и уже затем востановлен в обычный с виду CDDA. Если был восстановлен (а такие диски не редкость), то я стараюсь найти в коллекцию это произведение в оригинальном качестве (качестве обычного CD, ну если оно мне нравится)
Согласен, ситуация не проста. Что касается оскорблений со стороны клиента, то эта часть может быть легко отброшена тем фактом, что, к примеру, он не здоров и у него справка. Но, по конституции, имеет право выходить в интернет и звонить в саппорт (а саппорт, напоминаю - профессиональное подразделение по работе с клиентами, пусть даже и эмоционально неуравновешенными).
Техническую работу саппорта можно отложить в сторону. Камень преткновения - огласка информации.
Саппорт, как правило, записывает разговоры с клиентами. Вопрос в том - кто выложил информацию. Найти стрелочника сложно, но вчинить иск компании за огласку или просто выставить сам факт такой огласки в СМИ как прецедент, наверняка возможно. Особенно если клиент действительно нездоров и с него взятки гладки.
Я даже допускаю, что такой выброс можно было сделать с целью очернить стрим. Это в первый день детишки будут смеяться с эмоционального клиента. А на второй, более умные, прочухает ситуацию в другом ключе.
Ё... Разумеется. Ну так вот они, к примеру, и доказали, предоставив данную запись и некоторые факты подтверждающие невозможность её сделать на стороне клиента. И?
PS: Сложно даже предствить сколько и как табов нужно удалить что бы уменшить размер страницы в 7 раз. Сложно даже предаставить где эти табы расставлялись... :-)
PSЗЫ: Похоже опять уважаемых хабравчан держат за конченных идиотов. :-)
С другой стороны, есть просто абсолютно неквалифицированные люди, делающие первые шаги или просто неумные. Если вы занимаетесь их обучением, вы им можете указать на ошибки. Просто же тщательно знакомить всех с абсолютно дилетанской работой совершенно непонятно кого (ну не обучался чел, ну не прочёл вообще никакой книги... да мало ли причин) это банальная трата своего и чужого времени. Таких левых сайтов полинтернета. Никакой жизни не хватит.
Как будто вокруг нет мудрых книг и красивых женщин. :-)
В противном случае большинство окружающих нас вещей можно было бы легко зачислить в антипаттерны. Авто, качели, табуретки... Антипаттерн – это неправильное использование нужной и полезной вещи. Из этого абсолютно никак не следует, что мы не должны знать и шарахаться правильного применения нужных и полезных вещей. :-)
Второй момент который чуть резанул глаз, это фраза - Реализация Singleton в JAVA. Я не знаю прав я или нет с точки зрения моего интуитивного ощущения русского языка, но когда я вижу фразу ..В Java… я ожидаю, что это УЖЕ реализовано внутри самой платформы и человек просто описывает как там это сделано. Если же речь идёт о том как самому реализовать что-то средствами языка, я ожидаю увидеть оборот ...НА Java.. То есть - как мне реализовать это на языке Java.
Что же касается статьи в целом, то наверное это одна из самых толковых технических статей на Хабре за долгий период. Обычно люди, когда вставляют куски кода в статью, вырывают их из контекста и этот контекст не описывают. То есть пишут в духе ... я вот вчера ночью, лихорадочно кодируя (препарируя вирус...)... открыл для себя, что тут можно было вставить вот такой крутой оператор... а посему на утро хочу поделиться этим с хабра-людьми. Это всё хорошо, но... Что кодировал? Куда вставил? Зачем вставил и кому это нужно?
У вас действительно чётко и внятно описан ходовой и нужный паттерн, и приведены основные варианты его реализации с их плюсами и минусами. Статья логически закончена и реально полезна разработчику. Просто как букварь. Лан, не буду тут раcшаркиваться :-), но что хотел сказать, то сказал.
К сожалению, на мой взгляд, мы имеем стандартную проблему, когда некое изделие рассматривается вне того контекста и предназначения, для которого оно придумано. Точнее говоря, это предназначение очерчено очень схематично и, в итоге, ненавязчиво остаётся за кадром. Это проблема многих разработчиков, что они упускают ключевую концепцию, и с остервенением набрасываются на облизывание конкретных кусочков кода. :-)
Теперь, что касается портлетов. Технология не так уж и нова и придумывалась для того, что бы облегчить создание порталов. Откуда собственно и название. И вот тут, видимо, нужно о-очень явно оттенить, что же такое есть портал. К сожалению, как мне кажется, это слово уже давно имеет два смысла.
Первый смысл – бытовой. В этом смысле портал есть просто любой крупный тематический сайт, который постоянно (оперативно) обновляет свою информацию. Любой сайт, с более менее разношерстной информацией часто называют порталом. Городской портал, школьный портал.
А вот второй смысл – уже более технический. В этом смысле, порталом называется сайт, страницы которого, преимущественно, состоят из набора логически не связанных между собой кусочков. Логически не связанных! Вот это надо прибить гвоздями и уж затем, рассматривать плюсы или минусы данной технологии. Есть действительно сайты, в которых информация стуктурирована таким вот образом. В одном углу блок погоды, в другом биржевые новости, в третьем програма телепердач, а в четвёртом результаты скачек. Все эти кусочки никак не связаны между собой. Вот для того, что бы логически разделить создание этих кусков и придуманы портлеты.
И вот эти независимые портлеты не нужно путать с просто кусками сайта, которые очерчены лишь визуально. К примеру, строка поиска, является визуально очерченной компонентой, но не логически независимой. Ну потому, что она должна вывести результат в другую часть страницы. Которая, стало быть, от неё зависима.
Вот в контексте этого, становится понятно, почему нельзя “упрекать” портлеты в невозможности держать контроль над всей страницей или в том, что они плохо взаимодействуют между собой.
Если у вас части страниц сайта логически зависимы, вам просто не нужно использовать портлеты. Мы, к примеру, используем Wicket. Фреймворк, который даёт очень хороший и элегантный контроль над страницей, позволяя при этом иметь большое количество повторно используемых визуальных панелей. Которые в свою очередь опираются на бизнес классы аккуратно поддерживаемые Spring.
Однако судя по заметке, вы должны были поинтересоваться будет ли использован экскаватор, имеется ли он в наличии или будет заказн у подрядчиков. И если есть в наличии, то позволит ли он копать грунт на нужную глубину. Заодно ознакомиться с портфолио экскаваторщика и стоимостью нормочаса его работы в вашей местности. Попутно прикинуть сколько нормочасов будет потрачено на ваш сарай и так далее...
Ну и что же я неправильно сказал? Вопросы над которыми стоит задумываться вы перечислили правильно, только в большей части они не могут быть поставлены заказчиком. А именно дя них, если я правильно понял, вы писали заметку.
Представил себе опытного строителя, руководителя небольшой строительной компании. Задумался как он будет отвечать на вопросы:
Какие возможности по управлению веб-продуктом вы оставите у себя, какие передадите сотрудникам, какие возложите на подрядчиков?(Что такое веб-продукт? Как я могу им управлять? Что могут с ним делать мои сотрудники? Что способны делать подрядчики и вообще какие они бывают в этих ваших ВЕБ-продуктах?)
...Прикиньте сколько человеко-месяцев нужно на производство нужного вам продукта, оцените цену оплаты 1 месяца труда квалифицированного специалиста в вашем регионе и добавьте налоги, аренда, связь, реклама и разумную прибыль...
----------------------------------------------------------
Да хер его знает сколько вам нужно человеко-месяцев, сколько это стоит и что такое для вас разумная прибыль.
...Дело в том, что сайтом редко занимается меньше 3 человек, поэтому трудоемкость нужно считать в человеко-днях или человеко-месяцах...
-----------------------------------------------------------
А вот кладку кирпича делает у мене один человек. Нафуя вам три на сайт. (ну для примера)
...передача всех имеющихся у вас и нужных для проекта материалов в удобоваримом виде...
-------------------------------------------------------------
Что такое удобоваривый вид? Раствор для цемента?
Дальше читать внимательно не стал.
Если кто со мной не согласен, то давайте перевернём ситуацию наоборот. Приходит ВЕБ разработчик к строителю на предмет - сарай построить. Тот ему даёт рекомендации:
- Решите какую строительную технику вы будете использовать. Определитесь какую вы закажете прямо у нас, а какую у подрядчиков. Тщательно оцените, что мы сможем сделать для вас сами, что вы, а чего передать подрядчикам.
- Выберите адекватных крановщиков, плотников, столяров, каменщиков и сантехников
- Тщательно оцените какие задачи в контексте сарая будут решать каменщик, сантехник, крановщик и плотник. Определитесь что и как будет контролировать прораб. Аккуратно пропишите все эти моменты в договоре. Имейте в виду, что прораб тратит на ваш сарай 15 часов в день. Если трезвый.
- Выберите адекватных исполнителей. Тех, кто уже правильно установил унитазы (имеет портфолио), правильно сделал кладку и правильно обтесал окно. Прикиньте сколько чаловеко-часов у них это заняло. Узнайте стоимость работы экскаваторщика, сварщика, электрика, сантехника, каменщика, плотника и прораба в вашем регионе. Добавьте их налоги, спиртное, интернет и сигареты.
Ну и так далее.
Мудро. Да. :-)
PS: Карму вашу я ранее не трогал. Сейчас поднял. Пишите. Я не опускаю карму за то, что мнение человека не совпадает с моим. Или же прямо об этом говорю, если есть ещё некие причины.
<span><input /></span>Тег img вообще не закрыт. Хоть бы вот так поставили хвост. />
Или пока я сегодня днём работал, какая-то морда поменяла все принципы написания XML? Э?
Опекунство также не причём. Это взрослый совершеннолетний человек, имеющий право тратить свои деньги так как ему вздумается. Ему можно поставить в вину оскорбления, но вопрос в том, какой вес будет это иметь. Особенно если он нездоров.
А вот факт публичного выкладывания информации провайдером - есть сильный морально-этический прецедент, который бьёт по его репутации. Даже если и не удаётся подвести такое нарушение под наказуемую статью, сам факт такой огласки бросает сильную тень.
Итак, покупаю я диск. У меня нет другого такого диска, заведомо оригинального (не прошедшего MP3 обработку). Я возможно и слышу дефекты, но... я не знаю их причины. То ли так в студии записали (а записи разные бывают), то ли музыкальный ряд был обработан MP3 кодированием и уже затем востановлен в обычный с виду CDDA. Если был восстановлен (а такие диски не редкость), то я стараюсь найти в коллекцию это произведение в оригинальном качестве (качестве обычного CD, ну если оно мне нравится)
Техническую работу саппорта можно отложить в сторону. Камень преткновения - огласка информации.
Саппорт, как правило, записывает разговоры с клиентами. Вопрос в том - кто выложил информацию. Найти стрелочника сложно, но вчинить иск компании за огласку или просто выставить сам факт такой огласки в СМИ как прецедент, наверняка возможно. Особенно если клиент действительно нездоров и с него взятки гладки.
Я даже допускаю, что такой выброс можно было сделать с целью очернить стрим. Это в первый день детишки будут смеяться с эмоционального клиента. А на второй, более умные, прочухает ситуацию в другом ключе.