Software Development & Operations Flashcards

1
Q

Describe the vanilla structure of an Android project?

A

Within every Android app, we have five different kinds of files:

  1. AndroidManifest.xml - Defines properties of the application.
  2. Layout files - Defined via xml.
  3. Logic files - Defined in Java and Kotlin
  4. Resources - Within the res folder. Contains static variables and static files (like images) for your app.
  5. Gradle - Build files for translating code to an APK.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What does Gradle do?

A

Combines all of the development files and builds one single APK file for testing and distribution via Play Store.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is the build.gradle file used for?

A

Adding dependencies from third party modules (such as YouTube player).

Acts in a similar way to the dependencies property of the package.json file of node.js

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

How do you create an array in Java?

A

parameter_type[] array_name = new parameter_type[number_of_elements];

e.g.
String[] students = new String[5];

OR you can declare array elements at time of declaration:

String[] employees = {“Cloud”, “Tifa”, “Aerith”};

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Why is a string different from any other data type in Java?

A

They are not primitive data types and are instead objects.

This is how they are able to have methods attached to them, such as:

.toUpperCase()
.length()
.equals()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is a Headless Content Management System?

A

A backend-only CMS that makes content accessible via RESTful API’s for display on any device.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is feature parity?

A

Ensuring features maintain consistency / quality across multiple platforms.

E.g. Does a feature work the same on chrome and Firefox?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is a stateful component?

A

It is a central point that stores information in the memory about the app/component’s state. It also has the ability to change it. It is essentially a “living” thing that has knowledge of past, current and potential future state changes.

This makes it more difficult to re-use or replace in the future.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is a stateless component?

A

When something is “stateless”, it calculates its internal state but it never directly mutates it. This allows for complete referential transparency meaning that given the same inputs, it will always produce the same output.

This makes it easy to reuse or replace in the future.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

In database systems, what is the defintion of an atomic swap?

A

An indivisible and irriducible series of database operations such that either all occur, or none occur. It cannot be broken up. Ideal for financial transactions or trading.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is a GUID?

A

Globally Unique Identifier and Universally Unique Identifier

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is a Hook in programming?

A

A place in code that allows you to tap in to a module to either provide different behavior or to react when something happens.

In a generic sense, a “hook” is something that will let you, a programmer, view and/or interact with and/or change something that’s already going on in a system/program.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is the difference between a data lake and a data warehouse?

A

A data lake is a vast pool of raw data, the purpose for which is not yet defined.

A data warehouse is a repository for structured, filtered data that has already been processed for a specific purpose.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is event sourcing?

A

Architecting the application to publish events to a event log, and allowing services to subscribe to those events for the benefits of data consistency within microservices and centralised audit logging.

Example solutions include GCP Pub / Sub and Apache Kafka.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is lint?

A

A static code analysis tool used to flag programming errors, bugs, stylistic errors, and suspicious constructs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the three main business benefits to utilising API’s internally within an organisation?

A

1) Cost Reduction
2) Operational Efficiency
3) Enhanced Security

17
Q

What is code rot?

A

Slow deterioration of software quality over time or its diminishing responsiveness that will eventually lead to software becoming faulty, unusable, or in need of upgrade.

18
Q

What does “this” refer to in most languages?

A

“this” binds to the object that it is being called from.

An easy way to remember what “this” will refer to is by looking at the line where the function or method is called. Whatever is to the left of the function or method will be what “this” will bind to.

https://www.youtube.com/watch?v=Pi3QC_fVaD0

19
Q

What is a constructor?

A

In class-based object-oriented programming, a constructor is used to instantiate (assign values) to each variable within the class.

20
Q

What is polymorphism in programming?

A

The use of a single interface or symbol to represent multiple different data types. For example, functions having the same names but carrying different functionalities.

A simple example: defining a constructor called “Phone” that has 3 variables “name, screenWidth, camera” and another constructor also called “Phone” with 2 variables “name, screenWidth”

21
Q

What is the keyword “Super” used for in programming?

A

It is used within Object Inheritance, to pass all the parameters that are defined within the “Super” function to the parent object and use them there instead.

22
Q

What are the four fundamental concepts of Object Oriented Programming (OOP)?

A

1) Inheritance - the procedure in which one class inherits the attributes and methods of another class.

2) Encapsulation - hides private details of a class from the outside world and only exposes functionality important for interfacing with it, such as getter and setter methods. Think of it like a API within your codebase.

3) Polymorphism - functions having the same names but carrying different functionalities.

4) Abstraction

23
Q

What is the difference between Encapsulation and Abstraction in Object Oriented Programming?

A

Encapsulation provides you with a result, but does not expose to the developer what data was used in determining that result.

Abstraction provides you with a method to call, but does not expose to the developer what logic is used under the hood.

The best way to think of this is how it is implemented within Java: Abstraction is implemented in Java using interface and abstract class while Encapsulation is implemented using private, package-private and protected access modifier

24
Q

What is the static keyword used for?

A

Static means the value of that variable belongs to the object itself, and not the instances of that object. This means that every instance of the object that has a static modifier will share that same value.

For example, all employees() may have the same static company name.

25
Q

What are the primary differences between Maven and Gradle?

A

1) Maven is defined in XML, whereas Gradle is defined programatically in Groovy.
2) This enables reusable build components for developer productivity benefit.

26
Q

How would you describe React Native to an existing React user?

A

React is used for building Web Application interfaces, and uses an additional library called React DOM to translate the React Components to the browser platform.

React Native is the alternative library to react-dom which translates React components to iOS and Android platforms. It additionally gives you access to device APIs so you can access camera, permissions etc.

27
Q

How does React Native handle JavaScript code when translating to Mobile Platforms?

A

Unlike the JSX components, the JavaScript logic is not compiled.

Instead a JavaScript thread is hosted by React Native in the native app that’s been built and JavaScript is managed and run there.

28
Q

When building React Native applications, what is the difference between Expo CLI and React Native CLI.

A

Expo CLI is the recommended option, as it is easier to get started and extrapolates more configuration effort away from the developer. It also provides more useful packages and tools that can be used when writing code.

React Native CLI places more independence on the developer, meaning there are less convenient features for build, however it does make it easier to integrate with native source code such as Java, Objective-C, Swift or Kotlin.

29
Q

What is exponential backoff?

A

Truncated exponential backoff is a standard error-handling strategy for network applications. In this approach, a client periodically retries a failed request with increasing delays between requests to ensure the service does not get overloaded.