1. Why

Software engineering is more about reading code than writing it, and part of this process is finding the code that you should read.

In fact, based on a recent Google survey, the average developer performs more than 10 searches on a typical weekday.

<aside> 🛠 Monolithic Service to Microservices;Monolithic Repo to Multiple Repos → observibility problems both in service side and repo side.

</aside>

Here is a non-exhaustive list of example usages of code search engine:

2. Anatomy

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/195124cd-a8c6-4150-a713-3a60ed978f11/anatomy.png

3. Design Decisions

3.1 Query Language

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/1ab45586-9346-414b-88aa-c0cd62b9da92/query-languages.png

3.1.1 Keyword

Keyword query requires the user to specify the full name for the search target. For instance, if there exists a function in the source code:

func greeting() {
	fmt.Println("hello world")
}