#книги
Vladimir Khorikov - Unit Testing Principles, Practices, and Patterns
17.05.2023 - 01.07.2023
Рекомендую
- Книга оказалось гораздо полезнее TDD от Кента Бека.
- Также это первая книга, которую я практически полностью читал за компом, а не с мобилы, что позволило делать удобный конспект в обсидиане. Вообще читать с телефона перед сном технически книги, как я теперь понимаю, не очень продуктивно. Книги читаются меньшими частями и восстанавливать контекст при каждом возвращении довольно сложно и вредит общему пониманию.
- В первых главах идет некая классификация видов зависимостей и с этой классификацией вышла какая-то каша. Для примера. Автор делит все зависимости на три пересекающихся множества или вводит понятие out-of-process зависимости, и не обозначает, что все зависимости кроме out-of-process есть in-process. Кажется мелочью, но из-за этого первую часть было достаточно сложно воспринимать.
- В книге в 7й главе есть полезный пример, который показывает способы рефакторинга плохого кода в код, который более тестируем. Также приводятся различные паттерны, что тоже хорошо
- Примеры, которые разбираются в книге позволяют увидеть реальный код с хорошей архитектурой. Что очень полезно.
- Из книги узнал про то, как автор использует менеджер транзакций и репозитории
Vladimir Khorikov - Unit Testing Principles, Practices, and Patterns
17.05.2023 - 01.07.2023
Рекомендую
- Книга оказалось гораздо полезнее TDD от Кента Бека.
- Также это первая книга, которую я практически полностью читал за компом, а не с мобилы, что позволило делать удобный конспект в обсидиане. Вообще читать с телефона перед сном технически книги, как я теперь понимаю, не очень продуктивно. Книги читаются меньшими частями и восстанавливать контекст при каждом возвращении довольно сложно и вредит общему пониманию.
- В первых главах идет некая классификация видов зависимостей и с этой классификацией вышла какая-то каша. Для примера. Автор делит все зависимости на три пересекающихся множества или вводит понятие out-of-process зависимости, и не обозначает, что все зависимости кроме out-of-process есть in-process. Кажется мелочью, но из-за этого первую часть было достаточно сложно воспринимать.
- В книге в 7й главе есть полезный пример, который показывает способы рефакторинга плохого кода в код, который более тестируем. Также приводятся различные паттерны, что тоже хорошо
- Примеры, которые разбираются в книге позволяют увидеть реальный код с хорошей архитектурой. Что очень полезно.
- Из книги узнал про то, как автор использует менеджер транзакций и репозитории
👍2🔥2😱1🌚1
Хм. Нашел интересное поведение телеги
Я обычно стараюсь писать посты в "Saved Messages", редактировать и пересылать их в этот канал. Вчера я сделал точно также с обложкой книги и отзывом на нее. И телеграм не отобразил комментарии ко второму сообщению (отзыв на книгу).
Сейачс обнаружил, что так происходит, если пересылать 2 сообщения за раз. Если одно, то секция с комментариями появляется
Я обычно стараюсь писать посты в "Saved Messages", редактировать и пересылать их в этот канал. Вчера я сделал точно также с обложкой книги и отзывом на нее. И телеграм не отобразил комментарии ко второму сообщению (отзыв на книгу).
Сейачс обнаружил, что так происходит, если пересылать 2 сообщения за раз. Если одно, то секция с комментариями появляется
Какой классный бесплатный сервис!
https://vectorizer.ai
Превращает растровую картинку в векторную с помощью AI.
https://vectorizer.ai
Превращает растровую картинку в векторную с помощью AI.
🔥9🐳2
Ищу себе нормальны VPN. Нашел крутой, но нет серверов в рф, написал в поддержку и спросил почему. Ответ убил:
The reason we don’t have servers in Russia is that the Russian government requires anyone who routes Internet traffic to log.
Once we found out that they wanted or required us to log we removed our servers from the data center there.
It was our choice to remove those data centers because of our strict no logging policy.
С одной стороны меня радует подход, но с другой этот впн не закроет все мои потребности🔥2👍1
Перевод:
Выдержка из файла /scripts/web, включенного в состав оригинального netcat в 1995 году.
Интернет - отстой. Это могучий унылый клубок, построенный из тысячи
крошечных унылых косяков, скрепленных пластырем, и теперь эти допотопные
невежественные придурки, которые никогда не слышали о "рукопожатии TCP", хотят запустить
*коммерцию через эту чертову штуку. Да боги. Добро пожаловать на телевидение следующего
века - шесть миллионов каналов бесполезного дерьма на выбор, и
и примерно столько же безопасности, как в сегодняшней кабельной индустрии!
Сильно устав от болезненных браузеров в заднице, я решил
создать минималистичный клиент. Он не обрабатывает POST, только GET, но
большинство обработчиков CGI-форм, очевидно, все равно игнорируют этот метод.
Несомненным преимуществом является то, что он не передает никакой другой информации
серверу, например, Referer: или информацию о вашей локальной машине, как, например.
Netscum пытается это сделать!
Со времен первой версии этот клиент стал почти минималистичным,
но теперь он экономит много текста. А с netcat в качестве бэкенда, это
полностью соответствует требованиям. У вас нет netcat? Возьмите его здесь, в /src/hacks!
_H* 950824, обновлено 951009 и далее.🔥2😱1
(Слайс структур, удовлетворяющих интерфейсу) != (слайс интерфейсов).Пример:
https://goplay.space/#BGyrAUzsKAn
package mainможно исправить через дженерики:
import "fmt"
func main() {
arr := []SomeStruct{
{1},
{2},
}
Printer(arr) // нельзя передать
}
// Структура SomeStruct с единственным методом Print
type SomeStruct struct {
id int
}
func (s SomeStruct) Print() {
fmt.Println(s.id)
}
// Printer принимает слайс интерфейсов
func Printer(arr []Printable) {
for _, item := range arr {
item.Print()
}
}
type Printable interface {
Print()
}
func Printer[T Printable](arr []T) {
for _, item := range arr {
item.Print()
}
}
но даже так, если есть метод с ресивером указателем, то слайс структур не передать и надо делать слайс указателей на структуры, а это мне тоже не нравится. Сижу грущу. Другой язык что ли попробовать😁3😱1
If you had a J in your name you could get hired as a java programmerhttps://youtu.be/Nsjsiz2A9mg?t=1350
О, круто! Роберт Мартин называет чистую архитектура архитектурой Якобсона! (Ivar Jacobson)
Когда оборачиваешь доступ к апи в объект, то можно сделать сперва методы, которые соотносятся с эндпоинтами самого апи 1 к 1. А уже потом, используя эти методы создавать публичные методы удобные для всего остального кода.
Я раньше так и делал, но неосознанно, а сейчас явно прочитал, что это нормальная идея у Фаулера:
Я раньше так и делал, но неосознанно, а сейчас явно прочитал, что это нормальная идея у Фаулера:
Sometimes a good strategy is to build the Gateway in terms of more than one object. The obvious form is to use two objects: a back end and a front end. The back end acts as a minimal overlay to the external resource and doesn’t simplify the resource’s API at all. The front end then transforms the awkward API into a more convenient one for your application to use. This approach is good if the wrapping of the external service and the adaptation to your needs are reasonably complicated, because each responsibility is handled by a single class. Conversely, if the wrapping of the external service is simple, one class can handle that and any adaptation that’s needed.👍1🤔1
Не нравятся каналы, где отключены негативные реакции. Слабаки...
(Накидайте какашек)
(Накидайте какашек)
💩26👍4🤮2🖕1