Вы читаете коментарии в чужих сорцах?

Тема в разделе "WASM.HEAP", создана пользователем osrootd, 29 сен 2008.

  1. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Извините, тема флуд, но душа кричит.,

    Вот код есть мой:

    Код (Text):
    1. /**
    2. Никакой проверки на уникальность!
    3. Каждое подразделение само по себе уникально, если его org_id соответствует
    4. уникальному имени в division_name
    5.  
    6. Несоответствующие поля - это принадлежность подразделения к иной организации
    7. Совпадающие поля division_name и org_id блокируются по DuplicateObjectException
    8. **/
    9.  
    10. public class DivisionRegistry
    11. {
    12.  
    13. private Division div;
    14.  
    15. /**
    16. NOT NULL CONSTRUCTOR!
    17.  
    18. Будьте внимательны!. Нельзя создавать указатели в никуда:
    19.  
    20.  
    21. НЕ ПРАВИЛЬНО:
    22.  
    23.     Division div = null;
    24.     ...
    25.     new DivisionRegistry (div); -- Не верно, так как поля подразделения
    26.     указывают в пустоту и их нечем заполнять.
    27.  
    28. ПРАВИЛЬНО:
    29.  
    30.     Division div = new Division (0xЧисло); //По номеру, если извращение вытекает со всех дыр
    31.  
    32.    
    33.     new DivisionRegistry (div);
    34.  
    35.     или
    36.  
    37.     new DivisionRegistry    (
    38.                 new Division    (
    39.                         "Бухгалтерия", // Наименование
    40.                         myCorp // Указатель на вашу Организацию
    41.                         )
    42.                 ); // как следует.
    43.  
    44.  
    45.  
    46. **/
    Ну по чему в сапорт звонят челы, у которых вылетает NullPointerException всякий раз при попытке заполнить поля несуществующей структуры?
    Блин ну по таким мелочам (не только по этому ) я уже 14 входящих принял. Для кого коменты писал - не понятно
    Достали гады.
     
  2. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    В данном конкретном случае надо писать не комментарии, а докумиентацию После чего со спокойной совестью посылать всех на ..., в ... и к ... .
     
  3. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    CyberManiac
    +1. Хотя начальное нуление это нормально и такую ситуацию надо обрабатывать (в идеале невалидный пойнтер тоже). Ну и ехепшены тоже, если комковая либа конечно.

    Подробные комменты - это хорошо, а защита от дурака - лучше.
     
  4. Ursus

    Ursus Member

    Публикаций:
    0
    Регистрация:
    15 мар 2006
    Сообщения:
    238
    Адрес:
    Russia
    Ну, есть жэ типа вопросы производительности :)
     
  5. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Есть документация в doxygen, подробная.
    Без толку!
    А руководство говорит что инцидентов (ну... когда юзер звонит с проблемой) чето много.

    Опять вызов - это ваще на баш надо.

    Проект - библиотека
    libcorporate.so, libcorporate.dll (для двух систем)
    На ее основе пишутся проги для кладовщиков, мастеров и прочей корпоративной толпы.

    Вопрос: Собрали проект. Не работает. Пишет что нужна библиотека libcorporate. что делать?
    Ответ: выполнить install, если копировать разучились.
    Капец просто!
     
  6. slavanap

    slavanap Вячеслав

    Публикаций:
    0
    Регистрация:
    10 сен 2008
    Сообщения:
    300
    Адрес:
    Смоленск, Россия
    Чем короче и понятней комментарий, тем он привлекательней.)
    Никто груды рукописного текста читать не будет - у всех мало времени, жизнь такая.
     
  7. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Тут - нет.

    Если тебе надо принять массив из символов, ты не знаешь скока их будет (например с терминала или сервака), то еще можно допустить конструкции типа

    char[] c = null;

    Но тут так задумано, что ты не можешь не знать, для чего создается объект.

    Как раз чтоб ошибок было меньше.
    А руководство не признает никогда что в других подчиненных предприятиях кодеры или укуренные или пьяные на работе.
     
  8. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Груды да, но неужеле трудно написать короткую и понятную доку. И доксигенов не надо, делайте нормальное описалово в pdf, html, chm. И чтобы там было всё по делу, без всяких пространных рассуждений. Сами-то небось любите нормальную доку.
     
  9. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Ursus
    В бухгалтерии? Да и трай много тактов не заберет. И не забывайте целевой аудитории. Бухпроггеры, обычно, не супер. А сверхбыстрые алгоритмы лучше организовывать внутренне с входным интерфейсом имеющим все проверки. Так будет спокойнее.
     
  10. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    osrootd
    Не знаю вашей ситуации, но неужели так трудно if влепить? Просто чтоб голову не морочили.
     
  11. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Да не трудно. Просто как-то стремно, боюсь обидеть читателя. Я всегда считал что если ты айтишник, то первое, что должно быть в твоей голове - здравый смысл.

    Представь, если тебя посылают за хлебом примерно так:

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

    Тебе приятно будет?
    Так и кодеру.
     
  12. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    osrootd
    Причем тут приятность? Вы прогу не для человека пишете, а для компа. А комп - крайне исполнительный и крайне тупой. Те приведеное вами описание алгоритма похода за хлебом в магазин - абсолютно справедливо для компьютера. А если код закрыт, то для защиты от тупого кастинга и сигнатурки в интерфейсных классах не помешают. Или вы каждого юзверя уму научить собираетесь?
     
  13. halyavin

    halyavin New Member

    Публикаций:
    0
    Регистрация:
    13 май 2005
    Сообщения:
    252
    Адрес:
    Russia
    А javadoc разве не должен заканчиваться на "*/" вместо "**/" ? Мне кажется, что кодеры просто не используют IDE либо не знают как в ней читать javadoc. Я также не понял, а вас что все баги чужих кодеров заставляют исправлять? Раз они баг допустили, то пусть они и исправляют.
     
  14. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Душа конечно кричит, но лопатить исходники никто не хочет.
     
  15. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Я понял в чем проблема!

    Приводят следующий код ( со стула не падать, это - GCJ, там допустимо такое)
    Код (Text):
    1. extern "Java"
    2. {
    3.   namespace blackoffice
    4.   {
    5.     namespace corporate
    6.     {
    7.       namespace subsystem
    8.       {
    9.         class OrganizationRegistry;
    10.       }
    11.       class Organization;
    12.     }
    13.   }
    14. }
    15.  
    16. class blackoffice::corporate::subsystem::OrganizationRegistry : public ::java::lang::Object
    17. {
    18. public:
    19.   OrganizationRegistry (::blackoffice::corporate::Organization *org);
    20.   rebuild_Registry_Data (); // А вот сюда лезть не надо было
    Люди просто не знают, как работает gcc, как собираются приложения.
    Ситуация такая. Была толпа 1с-ников. Их сделали джавистами. Вот и глюки оттуда
    Ладно, переделали OrganizationRegistry.h, OrganizationRegistry.java соответственно как им надо, но rebuild_Registry_Data () - это нативная функция, и ее перестройка потребует изменения еще кучи сорцов. Просто Makefile надо было смотреть.

    Руководство от меня отстало после оценки кода другими спецами. Я оказывается написал нормальную работающую либу, а если кому не нравиццо, пусть идут учить язык, это бесплатно и быстро делается в конторе.
    Собственно, пока все путем.
     
  16. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Нечё на зеркало пенять, коль рожа крива - это правило должен принять каждый разработчик библиотечного кода, амбиции в топку. Если нет сил сказать себе - этот говонокод следует отрефакторить, запретить передачу в конструктор голого поинтера на приватный(!) класс, и комментарии не понядобятся, то остаётся делать вот такой профессиональный трюк - переложить проблемы на пользователей кода, у которых свои проблемы, бизнес-логика всякая.