20 random bookmarks
Тут будут ссылки на всё-всё, что я найду интересным
Тут будут ссылки на всё-всё, что я найду интересным
Меня просто нечеловечески бесит, когда разработчики оправдывают собственную некомпетентность мантрой «бизнесу надо». Если программист любой степени квалификации, от стажёра — до принципала — использует в качестве аргумента в любой дискуссии фразу «бизнесу надо» — знайте, перед вами тупой самозванец, гоните его в шею.
On communication on sea with flags
Artifacts is an image + link organizer app for macOS and iOS. A
completely native, local first way to save all that stuff you find
across the web.
When project scope is perfectly decomposed and management rules are clear and strict, speed of delivery is the virtue, not the quality.
Бывает, придёшь в кафе, там всякие круассаны и пирожные лежат красиво. Поразглядывал, выбрал, обращаешься к девушке. А она такая: «Вам с собой?» Нет, здесь. «Садитесь, к вам подойдет официант».
Сначала было про культуру общения в Интернете, а стало про культуры общения в разных странах.
package src
type config struct {
// Required
foo, bar string
// Optional
fizz, bazz int
}
// Each optional configuration attribute will have its own public method
func (c *config) WithFizz(fizz int) *config {
c.fizz = fizz
return c
}
func (c *config) WithBazz(bazz int) *config {
c.bazz = bazz
return c
}
// This only accepts the required options as params
func NewConfig(foo, bar string) *config {
// First fill in the options with default values
return &config{foo, bar, 10, 100}
}
func Do(c *config) {}
You’d use the API as follows:
package main
import ".../src"
func main() {
// Initialize the struct with only the required options and then chain
// the option methods to update the optional configuration attributes
c := src.NewConfig("hello", "world").WithFizz(0).WithBazz(42)
src.Do(c)
}
Бывает, проблему можно поправить функцией или макросом, но в код тянут библиотеку. Или можно купить готовое решение, но тимлид говорит: мы напишем свое через три месяца. Или разработчик насмотрелся видосов со свежей конфы и хочет проверить чужие идеи.
Index the independent
wherepredicates to improve hash join performance.
Indexing join predicates doesn’t improve hash join performance.
Indexing a hash join is independent of the join order.
Select fewer columns to improve hash join performance.
Hash joins do not need indexes on the join predicates. They use the hash table instead.
A hash join uses indexes only if the index supports the independent predicates.
Reduce the hash table size to improve performance; either horizontally (less rows) or vertically (less columns).
Hash joins cannot perform joins that have range conditions in the join predicates.
Powerful ASCII art editor designed for the Mac.
Философская концепция, которая объясняет, почему существует любая вселенная и что будет после смерти
Коллекция карт