За последние 24 часа нас посетили 22856 программистов и 1224 робота. Сейчас ищут 802 программиста ...

Что такое - абстракция?

Тема в разделе "PHP для профи", создана пользователем troinfo12, 28 янв 2022.

  1. troinfo12

    troinfo12 Активный пользователь

    С нами с:
    29 ноя 2019
    Сообщения:
    9
    Симпатии:
    0
    Всем привет!

    В настоящий момент изучаю книгу Роберта Мартина "Чистый код - создание, анализ и рефакторинг". (можно встретить ссылку для скачивания)

    В процессе прочтения книги, у меня возник вопрос, что подразумевает автор книги, когда говорит
    "Абстрация - зло" - https://prnt.sc/26km3q8

    Такая формулировка встречается достаточно часто, например, здесь - https://prnt.sc/26km6dh

    Вряд ли - это подразумевает абстрактный класс. Или скорее всего абстракция в широком смысле этого слова?

    Жду ваших комментариев.

    P.S. То да Абстракция - это сущее зло!
     
  2. Androbim

    Androbim Новичок

    С нами с:
    17 июн 2021
    Сообщения:
    49
    Симпатии:
    9
    Своими словами.
    Абстракция - это представление объекта реального мира, при котором учитываются только только те его стороны, которые нужны для работы программы. Например, если речь идет о турфирме, абстракция объекта Самолет не будет учитывать технических деталей, а только такие как - количество мест, время перелета и т п.
     
    Dimon2x и artoodetoo нравится это.
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    Если с интерфейсами все понятно - типы, разрешение, содержание констант.
    То абстракция - абстрагироваться, копировать от чего-то, на основе, правило, фундамент. Это нужно для разработчиков, которые пишут свои классы на основе "изначальной абстракции(делай что хочешь, но эти правила ты должен реализовать обязательно)". Функционала никакого не несут. Тупо вещь для проектирования.
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Я бы показал это на примере, когда тебе как технарю-программисту, какой-нибудь маркетолог-гуманитарий пытается объяснить, чего он от тебя хочет. Примерно так же выглядит программирование на язках с высоким уровнем абстракции по отношению к микросхемам, которые вообще-то понимают только нуль и единицу. Но компиляторы, интерпретаторы и препроцессоры с горем пополам переводят наши объекты, итераторы и прочие замыкания на их язык. Впрочем, делают это они довольно неплохо. Проблема только в том, что программист отдаляется от железа. Понимать как в действительности работает компьютер очень важно, чтобы писать хороший код. Низкоуровневые языки заставляют в этом разбираться. На высокоуровневых приходится это изучать отдельно. А если работать с фреймворками, навязывающими свою логику, то о железе вообще некогда думать.
     
    #4 [vs], 19 фев 2022
    Последнее редактирование: 20 фев 2022
    Dimon2x нравится это.
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям