Цитаты из книги автора Михалис ЦукалосGolang для профи: работа с сетью, многопоточность, структуры данных и машинное обучение с Go (Для профессионалов)
Также помните, что сказал об оптимизации Джо Армстронг, один из разработчиков Erlang: «Сначала сделай так, чтобы это работало, потом сделай так, чтобы оно было красивым, и только потом, если это действительно нужно, сделай так, чтобы оно работало быстро. В 90 % случаев, если ты сделаешь это красивым, оно само по себе будет работать быстро. Поэтому просто сделай это по-настоящему красивым!»
«Сначала сделай так, чтобы это работало, потом сделай так, чтобы оно было красивым, и только потом, если это действительно нужно, сделай так, чтобы оно работало быстро. В 90 % случаев, если ты сделаешь это красивым, оно само по себе будет работать быстро. Поэтому просто сделай это по-настоящему красивым!»
В данном случае экспериментировать означает самостоятельно писать Go-код, совершать собственные ошибки и учиться на них. Только не позволяйте этим ошибкам и сообщениям о них отбивать у вас охоту учиться дальше!
В Go при сборке мусора в корзину область кучи программы можно представить в виде графа Итак, у нас есть три цвета: черный, белый и серый. Когда алгоритм начинает работу, все объекты окрашены в белый цвет. По мере работы алгоритма белые объекты перемещаются в одно из двух остальных множеств: серое или черное. Те объекты, которые останутся в белом множестве, в какой-то момент будут удалены.
Пора обсудить значение каждого из этих цветов. Объекты черного цвета гарантированно не имеют указателей ни на один объект белого цвета. Однако объект белого цвета может иметь указатель на объект черного цвета, поскольку это не влияет на работу сборщика мусора. Объекты серого цвета могут иметь указатели на некоторые объекты белого цвета. Именно объекты белого цвета являются претендентами на удаление.
Параллелизм — это одновременное выполнение нескольких сущностей определенного вида, тогда как конкурентность — способ структурирования компонентов, позволяющий им выполняться независимо, когда это возможно