All streams
Search
Write a publication
Pull to refresh
0
0
Сергей @pusto

User

Send message
Насколько я помню, изначально обсуждался предлагаемый мною вариант решения проблемы, а не о том, какие хреновые правила действуют сейчас. Давайте же будем критиковать мой вариант, а не хреновый закон ПДн (тем более, что выше я уже согласился с вами насчет его хреновости).
Разбить функцию в 200 строк на отдельные функции по 10-20 строк — это не проблема. Вопрос в другом — а всегда ли это надо? И всегда ли это удобно для сопровождения?

Расскажу на примере собственного опыта. Искать проблемы в последовательно выполняемом коде объемом N тысяч строк, разбитом на 50-60 процедур/функций/методов, гораздо тяжелее, чем если процедур будет всего 5-6. Вместо последовательного скольжения взглядом сверху-вниз приходится постоянно скакать вниз-вверх согласно дереву вызовов. Поэтому в таких случаях лучше плюнуть на всякие там правила и рекомендации и написать процедуру объемом несколько сот строк кода подряд. Что мы и делали.

Как говорится, из всякого правила есть исключения. Жизнь — она гораздо богаче учебников.
1. Насчет гражданской ответственности — не точно, а «фифти-фифти» — см. habrahabr.ru/blogs/infosecurity/125473/#comment_4133867

3. Если вы согласны, что штрафы и уголовная ответственность — по результатам экспертизы, то о каком виде ответственности вы говорили безоговорочно («в любом случае»)?
Сейчас специально заглянул в ГК РФ ч.1. Цитирую:
Статья 401. Основания ответственности за нарушение обязательства

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

Как я понял, с одной стороны, пострадавший действительно может предъявить претензии к виновному и ему плевать, какие обстоятельства привели к нарушению обязательств. Здесь вы совершенно правы, а я не прав — признаю свою ошибку.

Но с другой стороны, предъявить-то он предъявить, но если виновное лицо докажет, что оно «всё правильно сделало», то вина с него снимается. Здесь у нас с вами, как говорится, фифти-фифти: докажет — будет считаться невиновным, не сумеет доказать — будет считаться виновным.
Это плохо, но всё же лучше, чем когда комментарии есть, но они отвратительные.

Комментариями можно запутать, забить внимание, увести в ложную сторону («Ой, код я переписал, а комментарии от старого кода остались!»), заставить разгадывать головоломки и т.д. В итоге времени может понадобится даже больше, чем если бы комментариев вообще не было.
Так, давайте по порядку:

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

2. Что касается закона о ПДн, то полностью разделяю ваше негативное мнение.

3. Теперь обсудим ваши вопросы.
Сомнения, насколько я понял, теперь касаются не преимуществ/недостатков предлагаемого решения, а тонких мест его реализации, не так ли? Реализация, на мой взгляд, обсуждаема.

А кто будет проверять нормальная ли защита, грамотные ли спецы её настраивали?

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

Как вам такой вариант?
Согласен — очень эффективная штука для ориентации в коде. У нас активнейшим образом применяется. Более того — получила дальнейшее развитие. Где одна, а где 3 пустые строки — при скольжении взглядом по коду сразу бросается в глаза.
Там, где не нужны никому, — там, может быть, и не пишутся.
Я вот сейчас представил гипотетическую ситуацию, что я заставил своих разработчиков удалить все комментарии из нашего проекта. Я больше чем уверен, что результатом будет то, что они начнут вести «двойную бухгалтерию» — один код для показа мне (я являюсь сборщиком проекта и одновременно его библиотекарем), а другой — для своей повседневной практической работы. Да и еще и обидятся на меня — зачем, мол, начальник, палки в колеса нам суешь?
Не скажите! Разобьете вы яйцо с одной стороны или с другой — разница несущественна. Разница по времени разбирательства в кодах с хорошими и плохими комментариями, по моим практическим наблюдениям на реальном проекте, может достигать двух порядков! А это, согласитесь, уже весьма и весьма существенно.
Если комментарии пишутся на том же уровне абстракции, что и конструкции языка программирования, то согласен с вами — это только мешающий шум. Я за такие бестолковые и отвлекающие комментарии всегда ругал своих начинающих разработчиков и заставлял переделывать. А вот если уровень абстракции комментариев выше, то комментарии становятся полезными.
За редким исключением комментарии должны быть предметного уровня. Например, оперировать понятиями «документ», «проводка», а не «цикл», «просканируем базу» и т.п.
Я уже несколько лет не работаю в одиночку. Код который я пишу, тут же подхватывают другие разработчики, и наоборот.

Аналогичная ситуация и у меня, но только не несколько лет, а уже второй десяток лет.

И если кто то пишет код который через месяц/два/10 лет он сам или кто то другой не сможет прочесть...

И я, и мои разработчики прочтут и разберутся в ЛЮБОМ коде нашего проекта. Разобраться-то разберутся, только вопрос «За какое время?». Согласитесь, одно дело а) разобраться за 15 минут и совсем другое — б) потратить на тот же самый код пару дней. И то, и другое я запросто могу обеспечить своим коллегам (и они мне), если буду а) писать качественные комментарии или б) не писать их или, что чаще всего гораздо хуже, писать некачественные комментарии.

По своему опыту скажу: много комментариев — плохо, нет комментариев — тоже плохо. Без комментариев может обойтись только тривиальная программа вроде студенческой лабы. Когда проект в сотни тысяч строк кода, ведется более десятка лет и постоянно модифицируется, то без комментариев будет ОЧЕНЬ И ОЧЕНЬ хреново. Поэтому я крайне отрицательно отношусь к идее кода без комментариев. И своих новых разработчиков всегда постоянно натаскивал, учил писать комментарии правильно.
Спади, да что же вы все считаете, что заказывают у дешевых малограмотных мальчиков-то?

По-моему, вы не по адресу: я так не считал — я лишь ответил на чужой контраргумент со школьником.

Сумма никак не гарантирует качество, особенно в нашей стране.

Разве я где-то утверждал обратное?

Думаете, что вы можете на фирму наехать в случае утечки данных? Тоже фига вам, потому что нет никаких законов и гостов на качество ПО и доказать вину фирмы не представится возможным.

У меня опять ощущение, что вы спорите не с моими словами, а с чьими-то еще. Из каких моих слов следует, что я могу наехать? Цитирую: "Ввести в обиход весьма чувствительные материальные выплаты за утечку персональных данных". Т.е. я только предложил вариант решения, который еще не работает.
Я думаю, в защите ПДн не следует перегибать палку сильнее, чем в остальных областях. Никто ведь не наказывает, например, владельцев банков, магазинов за то, что злоумышленники обезоружили их охрану, взломали сейфы и унесли что-то. Вот если ограбление/воровство подставное — тогда другое дело, а так — нет. Т.е. считается, что виноваты злоумышленники, начинается их поиск, а претензии к владельцам не предъявляются. Да, банку или магазину от этого не легче — потери у них всё равно есть, но хотя бы никто не налагает на них дополнительную ответственность.
Так и в случае с интернет-магазином должно быть. Если я поставил нормальную защиту, настроенную грамотными специалистами — ко мне претензий никаких не должно быть ни со стороны государства, ни со стороны частных лиц. Да, потери у меня всё равно есть (теряю лояльность клиентов), но хотя бы никто на меня не налагает дополнительную ответственность.

P.S. Спасибо за аргументированный комментарий.
Пардон, я, похоже, не нажал кнопку «ответить», а просто написал комментарий. В итоге получился как бы не ответ вам, а новый самостоятельный комментарий. Мой ответ здесь — habrahabr.ru/blogs/infosecurity/125473/#comment_4130166
Представляете, чем может обернуться для школьника, который собрал на какой нибудь халявной CMS себе интернет-магазин и данные проиндексируются? За него будут родители платить?

Так я вроде бы об ответственности интернет-магазинов говорил, а не их разработчиков. А это, как говорится, две большие разницы.

Отвечать в первую очередь должен интернет-магазин, а точнее — его владелец. Решил он сэкономить, поручив разработку малограмотным школьникам, которые что-то там сляпают на коленке за полчаса — что ж, флаг ему в руки, но на свой страх и риск.
Аналогия: тот же владелец магазина вряд ли отдаст свою дочернюю компанию в управление соседскому мальчишке, который скажет «Дядя Вась, дайте мне там порулить — вчера ко мне в руки такая классная книжка по менеджменту попалась!». Даже если этот мальчишка будет готов бесплатно работать — за опыт. А почему? Ведь этот вариант для дяди Васи гораздо дешевле и проще. Нет — потому что дядя Вася рискует своими деньгами. Поэтому он и выберет опытного специалиста. Да, специалист не дает гарантий от финансового краха, но он хотя бы существенно минимизирует риск.
Так и здесь: если дядя Вася уверен в соседском мальчишке — пусть рискует. Но не только чужими персональными данными, но и своими деньгами. Так будет справедливей.
Ничего нового в таком подходе нет. Мой бизнес — я за него отвечаю. Рублем. Поручил маркетинг/финансы/производство/логистику/etc неумехе — вылетел в трубу. Почему в остальных областях жизнедеятельности фирмы этот принцип действует, а здесь должно быть иначе?

Случится может всякое и пока рано думать о штрафных санкциях

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

… в умах людей должно отложиться то, что покупка в интернет — это на их страх и риск.

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

P.S. За комментарий — спасибо. Пусть мы и немного разошлись во мнениях, но мне понравилось, что вы критикуете аргументированно. Хоть у меня и мало осталось плюсов, но я вам его поставил.
Просто мысли вслух:
А может в данном случае и не нужен никакой сертификационный орган? По крайней мере, пока. В нашей коррупционной стране контролирующие органы имеют тенденцию вырождаться в каких-то уродцов, которые начинают сосать деньги с одновременной деградацией выполнения своих прямых обязанностей (вспомним хотя бы контроль за теплоходом «Булгария»). В результате владельцы уже привыкли решать вопросы не путем повышением безопасности и надежности, а путем заноса некоторой суммы «кому следует». Отсюда есть сомнения, что этот вариант решения проблемы реально заработает. Тем более, если сертификация добровольная.

Другой вариант решения проблемы:
Ввести в обиход весьма чувствительные материальные выплаты за утечку персональных данных. Например, за нарушение закона о персональных данных государство налагает штраф, начиная с N лямов (вплоть до уголовной ответственности) плюс иски за моральный ущерб от каждого пострадавшего. В сумме может набежать весьма крупная сумма. Один интернет-магазин «влетит» на десяток-другой лямов, второй — остальные после этого уже «зачешутся». Причем «чесаться» будут гораздо эффективнее, чем при добровольной сертификации.

P.S. Повторяю: это мысли вслух. Причем навскидку. Не уверен, что мысль здравая и без изъянов, поэтому прошу не расстреливать минусами. С интересом выслушаю критику.
Когда только один браузер (ОС, автомобиль, самолет, etc) «рай» если и наступает, то только на короткое время. Монополизм в любой области всегда приводит к тому, что вскоре разработчик этого единственного продукта на рынке становится «зажравшимся котом» — мол, а зачем мне дальше напрягаться, раз и так мне на Олимпе неплохо живется. Только конкуренция избавляет от такого самодовольства и заставляет двигаться вперед.

Другое дело, что необходима стандартизация. Разрабатывать разные варианты однотипного плагина для разных браузеров — такого быть, конечно же, не должно.
Не нужны потому, что они не пробовали поработать с деревом вкладок. Я паре пользователей показал Tab Kit, так они теперь без вертикального дерева вкладок работать уже не хотят. Очень удобно и напоминает им знакомый проводник, только вместо папок — вкладки.
Тогда рассуждаем дальше. Если тезис "Можно выбрать любой язык программирования" становится неверным (даже если мы речь ведем только о языках высокого уровня), то отсюда следует вполне логичный вывод, что не все языки программирования одинаково хороши, не так ли?
Дальше логическую цепочку продолжать или вывод уже очевиден?
> Профессиональному разработчику нет разницы на каком языке кодить программу, даже если он его не знает ему не составит труда изучить.

Под фразой "нет разницы" в таком категоричном заявлении (чтобы оно оставалось правильным) надо понимать "готов писать на любом языке программирования, если того ПОТРЕБУЕТ задача", а отнюдь не "можно выбрать любой язык программирования". Если человек выберет для графических задач язык СУБД, то разработчиком назвать его можно, но вот слова "профессиональный" он точно не заслуживает.

Information

Rating
Does not participate
Location
Чебоксары, Чувашия, Россия
Registered
Activity