Design a build system

  • 2

    Design a build system

  • 2

    Could you please add more information and context to your question?

    For example, what does the build system have to support?

    • Only the compilation of source files? Or also dependency management? Or continuous integration (like Jenkins)?

    • Only a particular language or it has to support many languages / platforms? For example, Ant is a popular build system for Java. And of course there is Bazel which is powerful and supports many languages and platforms.

    • Used by how many developers? Does it need to be distributed?

    • How about dependency management? Assuming there are some way to specify explicit dependencies and the build system is able to identify which resources that need to be rebuild upon a change of some components (i.e., via a DAG).

    Feel free to add more if there's something that I missed.

  • 0

    Some other requirements to consider:

    • Handle versioning? For example, in web development, the htmls need to refer to the correct versions of .js and .css files
    • Deal with secrets? For example, if the source code refer to some key or connection strings, does the build system need to plug-in the correct values for different environments?
    • Authentication for users? Is the system a product like VSTS/visualstudioonline or is it an internal service?

Log in to reply

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.