summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw96k <w96k@debian>2022-11-14 19:01:43 +0400
committerw96k <w96k@debian>2022-11-14 19:01:43 +0400
commit791ee3c417fd03c3ca9334439e1eb6210b896cb6 (patch)
tree8e8f76060e92deb22e040b2affa6b6118dae2b16
parent2040887223951c7df6b222dde1580c6870bfbf58 (diff)
Update digigarden
-rw-r--r--content/digarden/20210423140526-php.org3
-rw-r--r--content/digarden/20210425152343-ооп.org7
-rw-r--r--content/digarden/20210427230824-структуры_данных.org3
-rw-r--r--content/digarden/20210519213525-git.org10
-rw-r--r--content/digarden/20211215172338-статьи.org2
-rw-r--r--content/digarden/20221023004637-errata.org2
-rw-r--r--content/digarden/20221114131217-статья_почему_мне_не_нравятся_статически_типизируемые_компилируемые_языки.org6
-rw-r--r--content/digarden/20221114142614-ооп_в_javascript.org86
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
+
+