diff options
author | w96k <w96k@debian> | 2022-11-14 19:01:43 +0400 |
---|---|---|
committer | w96k <w96k@debian> | 2022-11-14 19:01:43 +0400 |
commit | 791ee3c417fd03c3ca9334439e1eb6210b896cb6 (patch) | |
tree | 8e8f76060e92deb22e040b2affa6b6118dae2b16 | |
parent | 2040887223951c7df6b222dde1580c6870bfbf58 (diff) |
Update digigarden
8 files changed, 111 insertions, 8 deletions
diff --git a/content/digarden/20210423140526-php.org b/content/digarden/20210423140526-php.org index f5d77fc..3d2c1b1 100644 --- a/content/digarden/20210423140526-php.org +++ b/content/digarden/20210423140526-php.org @@ -25,6 +25,9 @@ - Стандартная библиотека не разбита на неймспейсы, доступно сразу около 5-6 тыся функций - Странный нейминг +- Можно в функцию без аргументов прокинуть сколько угодно аргументов без + ошибки. Все остальные языки кроме Си этого не позволяют сделать (даже + C++). - Сложно переопределять поведение библиотек. Есть рефлексия, но скажем, чтобы поменять что-то в vendor через рефлексию возникнут сложности. В языках вроде ruby и python есть конфигурация на этом же языке diff --git a/content/digarden/20210425152343-ооп.org b/content/digarden/20210425152343-ооп.org index 87778a6..fd6aeb3 100644 --- a/content/digarden/20210425152343-ооп.org +++ b/content/digarden/20210425152343-ооп.org @@ -130,8 +130,6 @@ Car porshe = new Car(goodEngine); Дав интерфейс Service Locator'у, он возвращает экземпляр конкретного класса, реализующий переданный ему интерфейс. - - ** Хорошие вещи *** Интерфейсы *** Композиция классов, mixin'ы, trait'ы и т.д. @@ -161,10 +159,11 @@ https://www.infoworld.com/article/2073723/why-getter-and-setter-methods-are-evil [[id:bfb12d94-bef4-4e20-bc3a-67881e050ca1][Metaobject Protocol]] -** ООП традиционное +** ООП в разных языках +- [[id:3df0aee3-71c5-4c3e-8833-85bd9db7093c][ООП в Javascript]] - PHP - Java -- C++ +- C++ ** Видео - [[https://youtube.com/watch?v=lbXsrHGhBAU][Object-Oriented Programming]] diff --git a/content/digarden/20210427230824-структуры_данных.org b/content/digarden/20210427230824-структуры_данных.org index 5faa549..9de9a8e 100644 --- a/content/digarden/20210427230824-структуры_данных.org +++ b/content/digarden/20210427230824-структуры_данных.org @@ -31,3 +31,6 @@ https://en.wikipedia.org/wiki/List_of_data_structures Книги: - Алгоритмы: построение и анализ - Алгоритмы от Вирта + +Список и порядок структур данных для изучения: +- https://www.quora.com/How-can-I-learn-algorithms-and-data-structures-from-scratch?no_redirect=1 diff --git a/content/digarden/20210519213525-git.org b/content/digarden/20210519213525-git.org index 724a31d..9a313f2 100644 --- a/content/digarden/20210519213525-git.org +++ b/content/digarden/20210519213525-git.org @@ -2,7 +2,7 @@ :ID: 2edc103d-bf05-4aca-8cac-1c72571d1ee8 :END: #+title: Git - +* Git GUI: - gitg @@ -11,5 +11,9 @@ GUI: - https://jwiegley.github.io/git-from-the-bottom-up/ Понятия: -- Cherry Pick - Перенос коммита из одной ветки в другую. +- Cherry Pick :: Перенос коммита из одной ветки в другую. +- Rebase :: Перенос коммитов из одной ветки в начало другой с удалением + ветки и переписыванием истории основной ветки, не создавая + дополнительных коммитов кроме коммитов с изменениями. +- Merge :: Вливание коммитов из одной ветки в другую с сохранением всей + истории с созданием отдельного коммита с мерджем другой ветки. diff --git a/content/digarden/20211215172338-статьи.org b/content/digarden/20211215172338-статьи.org index 90d4af5..c05a8e5 100644 --- a/content/digarden/20211215172338-статьи.org +++ b/content/digarden/20211215172338-статьи.org @@ -10,3 +10,5 @@ - Emacs как редактор для полиглота - Учёт финансов при помощи СПО - Почему СПО важно как важен состав в продуктах питания +- [[id:2e089b03-b617-4b54-bd6f-4941c1c484fd][Статья: Почему мне не нравятся статически типизируемые компилируемые языки]] +- Статья: VC vs Magit diff --git a/content/digarden/20221023004637-errata.org b/content/digarden/20221023004637-errata.org index c26b9f6..2affd62 100644 --- a/content/digarden/20221023004637-errata.org +++ b/content/digarden/20221023004637-errata.org @@ -5,7 +5,7 @@ * Errata List of changes of my website and digital garden. -- <2022-11-12 Sat> Added [[http:/en/posts/ram-fix.html][article about fixing RAM memory]] +- <2022-11-12 Sat> Added [[https://w96k.dev/en/posts/ram-fix.html][article about fixing RAM memory]] - <2022-11-03 Thu> Added more info to [[id:dd94af19-b479-48ed-82c5-776413564942][Courses]] and [[id:3c6e6f4a-fb2f-4620-abfc-edcb9b0dcabe][Email]] pages - <2022-11-02 Wed> Created [[id:952d944c-724f-4ced-bceb-d6535d4cc050][Georgian Language]] page - <2022-10-31 Mon> Created [[id:46bd6e4d-43ea-4f31-aa2d-155b4499b6fb][Zig]] programming language page diff --git a/content/digarden/20221114131217-статья_почему_мне_не_нравятся_статически_типизируемые_компилируемые_языки.org b/content/digarden/20221114131217-статья_почему_мне_не_нравятся_статически_типизируемые_компилируемые_языки.org new file mode 100644 index 0000000..60612fc --- /dev/null +++ b/content/digarden/20221114131217-статья_почему_мне_не_нравятся_статически_типизируемые_компилируемые_языки.org @@ -0,0 +1,6 @@ +:PROPERTIES: +:ID: 2e089b03-b617-4b54-bd6f-4941c1c484fd +:END: +#+title: Статья: Почему мне не нравятся статически типизируемые компилируемые языки +* Почему мне не нравятся статически типизируемые компилируемые языки +- Нет REPL diff --git a/content/digarden/20221114142614-ооп_в_javascript.org b/content/digarden/20221114142614-ооп_в_javascript.org new file mode 100644 index 0000000..da2ceaf --- /dev/null +++ b/content/digarden/20221114142614-ооп_в_javascript.org @@ -0,0 +1,86 @@ +:PROPERTIES: +:ID: 3df0aee3-71c5-4c3e-8833-85bd9db7093c +:END: +#+title: ООП в Javascript +* ООП в Javascript +** Создание простого блюпринта +*** Constructor function +#+begin_src js + function Human (firstName, lastName) { + this.firstName = firstName + this.lastName = lastName + } +#+end_src + +*** Class +#+begin_src js + class Human { + constructor(firstName, lastName) { + this.firstName = firstName + this.lastName = lastName + } + } +#+end_src + +*** Objects Linking to Other Objects (OLOO) +#+begin_src js + const Human = { + init (firstName, lastName ) { + this.firstName = firstName + this.lastName = lastName + } + } + + const chris = Object.create(Human).init('Chris', 'Coyier') +#+end_src + +*** Factory functions +#+begin_src js + function Human (firstName, lastName) { + return { + firstName, + lastName + } + } +#+end_src + +*** Методы +Методы лучше всего определять в Prototype, так как тогда все инстансы +будут использовать одну функцию, а не иметь непосредственно уникальную +функцию в инстансе (т.е. дублировать функции по сути). + +** Наследование +*** Класс +#+begin_src js + class Child extends Parent { + // ... Stuff goes here + } + + class Developer extends Human { + constructor(firstName, lastName) { + super(firstName, lastName) + } + } + + const chris = new Developer('Chris', 'Coyier') +#+end_src + +*** Прототипы +Остальные методы наследования подразумевают ручное изменение прототипа. + +** Модификаторы доступа +*** Public +По дефолту всё Public и как таковых модификаторов доступа в Javascript и нет +*** Private +Не так давно добавили настоящие приватные поля и методы при помощи ~#~ +#+begin_src js + this.#fuel = 50 +#+end_src + +*** Private by convention +Можно как в питоне приватные вещи помечать подчеркиванием ~_~ +#+begin_src js + this._fuel = 50 +#+end_src + + |