Programming: Buzzwords and Tech

Programming buzzwords and meanings behind them. Hot libraries, fashionable concepts.

17 flashcards · Computer Science · by lakesare

  1. Two-way VS one-way data flow? Name example of both.

    Two-way: (angular 1.0) input fields and state are bound together, and will each automatically update as the other is changed. One-way: (react) view is a function of the state. To update state, callback is called. Main difference is that in two-way data binding, inputs are basically provided with default implicit callbacks.

  2. Why follow Single Source Of Truth principle?

    Because all other locations of the data just refer back to the primary source of truth location, updates to the data element in the primary location propagate to the entire system without the possibility of a duplicate value somewhere being forgotten.

  3. What's a leaky abstraction? Give an example.

    Abstraction that exposes details of its underlying implementation. When you use ORM you still need to know SQL in order to do something semi-advanced, or if you care about performance.

  4. What is CI (Continuous Integration)?

    Just git push multiple times a day. Why: to prevent integration problems (as developer checks out a branch from the master repository, his copy of code becomes more and more distant from master). How: By integrating early and often, so as to avoid the pitfalls of "integration hell".

  5. What is BEM?

    Guideline for naming css classes. BEM subdivides elements to: block - component in site (header) element - should only make sense in the context of its block (li in nav) modifier - (active) Suppose you have block form with modifiers theme: "xmas" and simple: true and with elements input and submit, and element submit with its own modifier disabled: true for not submitting form while it is not filled: <form class="form form--theme-xmas form--simple"> <input class="form__input" type="text" /> <in…

  6. Agile VS Scrum?

    Agile is a general philosophy regarding software production, Scrum is an implementation of that philosophy.

  7. What's agile software development?

    Set of principles and values. It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change.

  8. What's OpenGL?

    Open Graphics Library (OpenGL) is a cross-language specification for rendering 2d&3d graphics. Software implementations of OpenGL were common, but influence of OpenGL eventually led to widespread hardware support.

  9. Name an example of a command specified by OpenGL.

    Draws a rectangle: glRectf(-1.0, -1.0, 1.0, 0.0); OpenGL specifies a set of "commands" or immediately executed functions. Each command directs a drawing action or causes special effects.

  10. What's WebGL?

    WebGL is a branch of OpenGL. It is run in browsers through <canvas>. All calls are done through JavaScript. This means you can build advanced 3D visuals that run in a web browser without the need for the user to download any plugins. Links: basic webgl talk

  11. What is git flow?

    In the Git flow development model, you have one main development branch with strict access to it. It’s often called the develop branch. Developers create feature branches from this main branch and work on them. Once they are done, they create pull requests. In pull requests, other developers comment on changes and may have discussions, often quite lengthy ones. Links: 1, 2, 3

  12. What's RFC?

    RFC (Request For Comments) is a formal document, authored by engineers and computer scientists describing methods, research, or innovations applicable to the working of the Internet. The IETF adopts some of the proposals published as RFCs as Internet Standards. It is submitted either for peer review or to convey new concepts, information, or (occasionally) engineering humor. Request for Comments documents were invented by Steve Crocker in 1969 to help record unofficial notes on the development…

  13. What does serverless computing mean?

    The serverless computing service takes your functions as input, performs logic, returns your output, and then shuts down. You are only billed for the resources used during the execution of those functions. Serverless computing should really be called function-as-a-service platform. If you’ve heard about AWS Lambda or Google Cloud Function, then you’ve heard about FaaS.

  14. Name 3 pillars of OOP.

    Encapsulation (classes and objects) Inheritance (reuse of base class to form derived class) Polymorphism (ability to substitute one class for another)

  15. What is vertical VS horizontal scaling?

    Vertical Scaling - one big server. Involves increasing the capacity of a single server, such as using a more powerful CPU, adding more RAM, or increasing the amount of storage space. Limitations in available technology may restrict a single machine from being sufficiently powerful for a given workload. Additionally, Cloud-based providers have hard ceilings based on available hardware configurations. As a result, there is a practical maximum for vertical scaling. Horizontal Scaling - many smalle…

  16. What does GDPR stand for?

    General Data Protection Regulation The GDPR aims primarily to give control to individuals over their personal data and to simplify the regulatory environment for international business by unifying the regulation within the EU.

  17. What's DNA computing?

    Branch of computing which uses DNA, biochemistry, and molecular biology hardware, instead of the traditional silicon-based computer technologies. The slow processing speed of a DNA computer (the response time is measured in minutes, hours or days, rather than milliseconds) is compensated by its potential to make a high amount of multiple parallel computations. This allows the system to take a similar amount of time for a complex calculation as for a simple one. This is achieved by the fact that…