• Достоинства и недостатки ООП более детально?

    kinglostov
    @kinglostov
    просто lostov
    Идеи ООП (Хоар, 1966, “Совместное использование кода”):
    • Инкапсуляция (объединение данных и действий над ними, или для каждого типа данных – свои функции-действия);
    • Наследование (модификация развития программы за счет надстроек; вместо изменения написаного кода – делаем над ним надстройки);
    • Организация взаимодействия между объектами; перенесение взаимодействия объектов из физического мира в программирование.
    Два вида взаимодействия:
    1. Акцессорное – вступление в контакт, получение информации от объектов (синхронное взаимодействие)
    2. Событийное взаимодействие – взаимодействие, связанное с изменением состояния объекта (асинхронное взаимодействие)
    Объект – конкретная реализация абстрактного типа, обладающий характеристиками состояния, поведения, индивидуальности.

    Состояние – один из возможных вариантов условий существований объекта.

    Поведение – описание объекта в терминах изменения его состояния и передача сообщений (данных) в процессе воздействия.

    Индивидуальность – сущность объекта, отличающееся от других объектов.

    Действие – деятельность или операция, которые должны быть выполнены над объектом.

    Модель Мура:
    • Состоит из множества состояний, каждое состояние представляет стадию в жизненном цикле типичного экземпляра.
    • Из множества событий: каждое событие представляет собой инцидент или указание на то, что происходит эволюционирование.
    • Из (множества) правил перехода определяет какое новое состояние получает в следствие какого-нибудь события (событие может и не изменять объект)
    • Из действий – деятельность или операция который должен быть выполнены над объектом чтобы он мог достичь состояния (каждому действию соответствует состояние).
    Категории объектов:
    • Реальные объекты – абстракция фактического существующего объекта реального мира.
    • Роли – абстракции цели или назначения человека, части оборудования или организации.
    • Инциденты – абстракция чего-то происшедшего или случившегося (наводнение, скачёк напряжения, выборы). -
    • Взаимодействия – объекты получаемые из отношений между другими объектами (перекресток, договор, взятка). -
    • Спецификации – используется для представления правил, критериев качества, стандартов (правила дорожного движения, распорядок дня).
    Преимущества ООП:
    • Возможность легкой модификации (при грамотном анализе и проектировании)
    • Возможность отката при наличии версий
    • Более легкая расширяемость
    • «Более естественная» декомпозиция программного обеспечения, которая существенно облегчает его разработку.
    • Сокращение количества межмодульных вызовов и уменьшение объемов информации, передаваемой между модулями.
    • Увеличивается показатель повторного использования кода.
    Недостатки ООП:
    • Требуется другая квалификация
    • Резко увеличивается время на анализ и проектирование систем
    • Увеличение времени выполнения
    • Размер кода увеличивается :interrobang:
    • Неэффективно с точки зрения памяти (мертвый код - тот, который не используется) :interrobang:
    • Сложность распределения работ на начальном этапе
    • Себестоимость больше
    Ответ написан
    1 комментарий
  • А можно ли, создать железный Интернет браузер, который будет полностью изолирован от OS?

    Adamos
    @Adamos
    Браузер - наиболее часто обновляемая программа в современных ОС.
    При этом за любым браузером стоит команда высококлассных спецов - и все равно в каждом обновлении латают обнаруженные дыры.
    Железное воплощение программы в первую очередь затрудняет ее обновление.
    Так что ваша идея - "давайте ходить на четвереньках, так же быстрее должно быть".
    Ответ написан
    4 комментария
  • RAID для домашнего ПК?

    Jump
    @Jump Куратор тега Windows
    Системный администратор со стажем.
    RAID для домашнего ПК?
    Это бессмысленная вещь.
    Если мы говорим о зеркале - оно имеет смысл тогда, когда вам нужна непрерывная работа, чтобы в случае отказа диска у вас не остановилась работа, вы бы этого даже не заметили, а пока вы работаете прибежал админ и поменал диск.
    Это задача RAID 1
    Он никаким боком не относится к сохранению информации.

    В то же время, можно собрать зеркало средствами ОС - Win10. Какие подводные камни могут быть в случае такого, полностью софтового массива?
    Есть три типа массива.
    1. Аппаратный - дорого, быстро, не тратятся ресурсы компьютера, но отсутствует гибкость.
    2. Софтовый - бесплатно, не так быстро, тратятся ресурсы ЦП, гибкая вещь.
    3. Софтовый, реализованный средствами мат. платы - это массив сочетающий недостатки первых двух, и не имеющий достоинств. Использовать категорически не рекомендуется.
    Посыпались ошибки после просыпания компа, чекдиск каждый раз,
    Вы целенаправленно уничтожали свои данные?
    Чекдиск это преднамеренное уничтожение всех данных которые ФС считает не совсем корректными - они просто уничтожаются.
    Он нужен для восстановления работоспособности файловой системы. Если на диске есть ценные данные его ни в коем случае не делают.
    Ответ написан
  • В чем смысл майнинга?

    Jeer
    @Jeer
    уверенный пользователь
    Именно, что государство (цб, на самом деле, его не контролирует государство) может выпустить сколько угодно денег. По сути, фантиков, потому что деньги не привязаны к какому-то физическому эквиваленту. Из-за этого возникают разные смешные ситуации, типо чёрного понедельника (самоубийства и ад). Различные "кризисы". Различные рычаги давления. К примеру, курс доллара по отношению к местной валюте за неделю вырастает в два раза. У нас что, люди перестали работать? Украли золотые запасы? Закончились международные контракты, заключенные на будущее? Закончились продовольственные запасы? Нет, жили как жили, но жить стали хуже. Это всё механизмы давления, и рычаги от этих механизмов находятся не в наших руках. В том числе появляются войны. Есть много интересных видео про то, как устроен финансовый мир, поглядите, интересно.
    Что касается криптовалюты, по сути, это такие же фантики. Но решение сложных математических операций (майнинг) гарантирует нам, что никто не может нарисовать сколько угодно денег за сколь угодно короткий промежуток времени. И даже когда появляются очень большие мощности, увеличивается сложность задач и выпуск этих крипто-денег всё равно происходит довольно стабильно. Так же вообще отсутствует центральный банк. Тот, кто организовал криптовалюты не имеет рычагов давления.
    Из вышесказанного, если сравнивать два фантика, доллары и криптовалюту, то у второй видно явное преимущество.
    Ну и опять же, после всеобщего распространения, появились биржи и появилась зависимость криптовалют и долларов. Поэтому появились и дополнительные рычаги изменения цены. Это, в принципе, не зависит от криптовалют, у кого есть все деньги мира (бесконечное количество фантиков), он может купить весь урожай хлопка и задрать нереально цены. В общем, не должны были криптовалюты так использоваться, но имеем что имеем.
    Ответ написан
  • После нажатия кнопки вылетает access violation, что делать?

    @kalapanga
    Пройдитесь отладчиком пошагово, увидите, на чём именно падает.
    Автосоздание формы TF_FormUchetDoc убрано?
    Application.CreateForm(TF_FormUchetDoc, F_FormUchetDoc); должно быть перед try.
    К делу не относится, но зачем два раза подряд проверяется F_DM.Q_Prikaz.IsEmpty ?
    Ответ написан
    8 комментариев
  • Кто больше независим - разработчик или тестировщик?

    1) Тестировщик - это сотрудник в штат или сотрудник в штат на удаленку. На Фрилансе ничего сложнее заказов "протыкать сайтик, посмотреть ошибки, уязвимости" тебе не дадут. Ибо, мелким заказчикам тестирование не нужно, а крупные уже набирают в штат (НДА, знакомство с системой и прочее).

    2) На западе считается, что тестер - это обезьяна, поэтому платят копейки. Реальные деньги появляются, когда ты становишься либо безопасником, либо QA-Аutomation (а это уже знание Java/Python + базы данных и прочие тестовые фреймворки).

    3) Тестирование - это прослойка между ПМ и Разработкой на более менее крупных проектах. Собственно, если нет этого, то прослойка в виде тестера не нужна.

    _____

    Если кратко, то в тестировании хорошие деньги получают только лиды, qa-automation, безопасники - это 3-4 года опыта надо. Разработчики в целом получают выше, да и всегда остается возможность сделать что-то свое. Т.е. разработчиком быть выгоднее. Вопрос только в том, что в тестирование зайти проще, да и всегда можно в разработчика перерасти.
    Ответ написан
    Комментировать
  • Как раз и навсегда отсортировать записи в PostgreSQL?

    @d-stream
    Готовые решения - не подаю, но...
    Формулировка вопроса идентична "мне скачаный файл не нужен, как закачать его обратно в интернет?"

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

    Единственный способ - ключи и индексы. При их грамотном построении вывод будет не только по указанному порядку, но и в ряде случаев быстрее.
    Ответ написан
    Комментировать
  • Как раз и навсегда отсортировать записи в PostgreSQL?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега PostgreSQL
    Седой и строгий
    PostgreSQL, как и многие другие СУБД, хранит данные в произвольном порядке. И выбирает он их тоже в произвольном, если не задано правило сортировки. Всё что вы можете сделать, это построить индекс по интересующим вас полям, чтобы выборка с сортировкой по этим полям выполнялась быстро.
    Ответ написан
    Комментировать
  • Почему постоянно отваливается интернет?

    martin74ua
    @martin74ua Куратор тега Компьютерные сети
    Linux administrator
    У интернета есть два стабильных состояния - только что был и скоро будет.

    Задайте этот же вопрос техподдержке вашего провайдера.
    Ответ написан
    Комментировать
  • Где используются алгоритмы и структуры данных?

    @d-stream
    Готовые решения - не подаю, но...
    Даже в электрочайнике и кнопке смыва воды в унитазе используются алгоритмы. Разве что им редко присваивают божественный или персонифицированный смысл и поэтому не пишут их с заглавной буквы в середине предложения)
    Ответ написан
    Комментировать
  • Для чего нужна утилита DataBase Desktop?

    ipswitch
    @ipswitch
    IT-инженер
    Вообще это что-то типа MySQL Workbench для BDE. Утилита визуальной работы с базами данных BDE под Windows.
    Редактор таблиц простенький, поиск есть.

    Так что скорее всего варианты ответа C и D как минимум.

    Если охота потискать самому:
    forum.biland.ru/viewtopic.php?id=18
    https://sourceforge.net/projects/bbdbd/
    Ответ написан
    Комментировать
  • Где находятся IT-центры в США?

    @MaxLich
    java developer
    Ответ написан
    Комментировать
  • Какие есть мультипротокольные Download-менеджеры?

    Jump
    @Jump Куратор тега Windows
    Системный администратор со стажем.
    Aria2
    HTTP, HTTPS, FTP, BitTorrent и Metalink
    Причем умеет тянуть один файл с разных источников и по разным протоколам.
    Ответ написан
    Комментировать
  • Как увеличить скорость записи в базу при парсинге XML файла?

    longclaps
    @longclaps
    Тормоза в первую очередь из-за постоянного создания-удаления соединения, во-вторую - из-за создания-удаления курсора, в третью - из-за постоянного создания query, в четвёртую - из-за коммитов.
    Все эти операции достаточно совершить один раз.

    update Владимир, на самом деле я не предлогал создавать 100500 тивиальных функций, можно без них:
    import cx_Oracle
    import xml.etree.ElementTree as ET
    
    tree = ET.parse(filexml)
    element_xml_root = tree.getroot()
    db = cx_Oracle.connect("SYSTEM", "1234567890", "localhost/ORCL")
    dbcur = db.cursor()
    query_pac = dbcur.prepare('INSERT INTO pac_table (idpac, fam, im, ot)'
                              ' VALUES (:idpac, : fam, : im, : ot)')
    query_usl = dbcur.prepare('INSERT INTO usl_table (idpac, code_usl, date_usl, price_usl)'
                              ' VALUES (:idpac, : code_usl, : date_usl, : price_usl)')
    
    for elem in element_xml_root.findall('ZAP'):
        idpac = elem.find('ID_PAC').text
        fam = elem.find('FAM').text
        im = elem.find('IM') .text
        ot = elem.find('OT') .text
        dbcur.execute(query_pac, (idpac, fam, im, ot))
        for data in elem.findall('DATA'):
            code_usl = data.find('CODE') .text
            date_usl = data.find('DATE') .text
            price_usl = data.find('PRICE') .text
            dbcur.execute(query_usl, (idpac, code_usl, date_usl, price_usl))
    db.commit()
    dbcur.close()

    зы аккуратно - код написан на коленке ) Я не работал с Oracle и, например, не уверен, нужен ли тут коммит - возможно по умолчанию действует автокоммит при вставке одиночной строки.
    Ответ написан
    Комментировать
  • Как сделать поиск по файлу access и вывод?

    @kalapanga
    В базе данных информацию запросами ищут. Из введённых данных формируете текст запроса. Присваиваете полученное соответствующему атрибуту объекта "запрос", который является источником данных для вашего грида. Выполняете запрос, показываете результат. Всё.
    Ответ написан
    Комментировать
  • Как получить список зависимых таблиц MSSQL с помощью запроса?

    @d-stream
    Готовые решения - не подаю, но...
    В принципе все есть в sysobjects и студия ровно оттуда добывает

    конструкции запросов бывают несколько многоэтажными, это работает

    p/s/ по бреду: sql profiler'ом перехватить студийный запрос на поиск зависимостей)
    Ответ написан
    7 комментариев
  • Первая работа в IT. Стоит ли принимать такое решение?

    @spaceatmoon
    Я еще понимаю Fullstack когда и фронт, и бэк, но даже они уже не блещут профессионализмом, а тут еще и мобильная разработка. Мобильники и веб разные направления, а ваш потенциальный работодатель просто экономит деньги. Отказывайтесь.
    Ответ написан
    5 комментариев
  • Надежен ли данный шифр?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Атака "дней рождения" работает на каждом символе с шагом в n ((f(x)+hn) mod n = f(x) mod n), дальше статистика и до свидания.
    Ответ написан
    Комментировать
  • Как настроить среду delphi?

    sabramovskikh
    @sabramovskikh
    Никак
    Ответ написан
    Комментировать
  • Нужно ли самозанятому заключать договор?

    de-iure
    @de-iure
    just a crazy lawyer
    вы все в кучу свалили - самозанятость, регистрация, налоги, образовательная деятельность (репетиторство), договора... поэтому и разобраться не можете...

    По законодательству РФ (налоговому кодексу) физлицо может может относиться либо к самозанятому гражданину, при этом регистрация не требуется, либо иметь статус ИП, и тут статус ИП без регистрации не получить.

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

    У ИП форм налогообложения много - это и доходы 6%, доходы - расходы 15%, ЕНВД, ОСНО, патент и пр... самое оптимальное патент или 6%. Самозанятый гражданин обязан раз в год до 1 апреля следующего года оплачивать со своего дохода НДФЛ 13% и сдать в налоговую декларацию (отчитаться о своих доходах, как например при продаже авто, если оно в собственности была менее 3 лет... но на практике доходы от репетиторства и пр. такой деятельности мало кто показывает и уплачивает НДФЛ, сейчас как раз обсуждается в налоговой как обязать таких граждан платить налоги и сдавать отчетность)

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

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