Convenience is not an attribute of quality
Sep 17, 2024
in •
CLEANYOURROOMDON
api
monotony
method
convenience
vocabulary
calls
action
3 min read
Much has been said about the importance and complexity of designing good APIs (application programming interfaces). It’s hard to get everything right the first time, and even harder to change anything along the way; it’s like raising children. Experienced programmers have already understood that a good API offers the same level of abstraction for all methods, possesses uniformity and symmetry, and forms a vocabulary for an expressive language. Unfortunately, knowing the principles is one thing, but following them in practice is another. You know that eating sweets is harmful.
But let’s move from words to action and analyze a specific “strategy” for API design that I encounter constantly: designing the API to be user-friendly. As a rule, it all starts with one of the following “insights”:
...
➦ Continuous learning
Sep 12, 2024
development
twitter
google
journeyman
master
delve
neo
matrix
technologies
technology
group
subject
code
online
4 min read
We live in interesting times. Development is distributed all over the world, and it turns out that many people are capable of doing your job. To remain competitive in the labor market, you need to continuously learn. Otherwise, you will turn into a dinosaur stuck in your job until one fine day it turns out that you are no longer needed, or that your job has been given to someone who is willing to do it for less.
How to solve this problem? Some employers are generous and organize training to develop already hired programmers. Others simply cannot afford to allocate time or resources for this. The most reliable solution is to take care of your own education.
Here is a list of ways to continue learning.
...
➦ How to use the bug tracking system
Sep 03, 2024
error
report
information
public
team
3 min read
No matter what you call them – bugs, defects, or even design side effects – it is impossible to eliminate them completely. For a project to be successful moving forward, it is very important to be able to correctly write an error report, as well as to know what to pay attention to in it.
In a good bug report, three things should be described: • How to reproduce the error – as accurately as possible – and how often the error manifests itself. • What was supposed to happen – how do you see it? • What is actually happening – at least the data you were able to record.
The volume and quality of the provided information equally characterize the report’s author, as well as the error itself.
...
➦ Relational Database Management Systems
Aug 25, 2024
in •
JAVA
•
MYSQL
•
RUBY
•
SQL
ram
java
ruby
data
database
application
dbms
sql
3 min read
If your application needs to handle a large, long-lived set of interrelated data elements, you can confidently place it in a relational database. In the past, there were few relational DBMSs; they were complex, expensive to maintain, and clunky beasts. Those times are gone. Today, finding a relational DBMS is not difficult: it is quite possible that a relational DBMS or even two are already installed on your machine. Some very advanced relational DBMSs, such like MySQL and PostgreSQL, are available in source code, so the question of costs it is no longer worth buying them. Moreover, the so-called “embedded database systems” can be integrated into your application as libraries, almost requiring no configuration and administration; two such examples are interesting open-source DBMS, SQLite and HSQLDB.
...
➦ Before blaming others, check your own code
Aug 19, 2024
sherlock holmes
dirk
compiler
time
code
errors
version
3 min read
A developer – any of us! – often finds it difficult to admit that their code doesn’t work. It seems so implausible that we are more likely to assume there is a bug in the compiler.
In reality, it is very, very rare for code to be non-functional due to a bug in the compiler, interpreter, operating system, application server, database, memory manager, or any other element of system software. Yes, there are bugs, but they are much less frequent than we would like to think.
Once, I actually encountered a bug in the compiler (removing the loop variable during optimization), but in all other cases, my complaints about the compiler or operating system turned out to be unfounded. I wasted a lot of my time, support staff time, and management time, only to end up in an awkward position when it turned out that the mistake was my own.
...
➦ Know how to use command line utilities
Aug 19, 2024
microsoft
eclipse
gui
ide
tools
command-line
use
line
3 min read
Today, many software development tools are delivered as integrated development environments (IDEs). Besides the two popular examples – Visual Studio from Microsoft and Eclipse from the open-source community – there are many others. A lot can be said in favor of IDEs. They are easy to use and they free the programmer from the need to delve into many minor details, including the build process.
However, ease of use has its downside. A tool is usually easy to use when it makes decisions for the programmer and automatically does a large amount of work behind the scenes. Therefore, if you only use an IDE as your programming environment, it is quite possible that you will never fully understand what your tools are actually doing.
...
➦ Satisfy your ambition through Open Source
Aug 06, 2024
in •
GOOGLE
•
PC
google
apple
microsoft
code
projects
project
work
programmer
3 min read
As a rule, the programs you write at work do not satisfy your most ambitious programmer dreams. It may happen that you are developing software for a huge insurance company, but you would like to work at Google, Apple, Microsoft, or start your own startup that will bring about the next revolution. You will never reach your goal by developing software for systems that do not interest you.
Fortunately, there is a solution to your problem: open source, that is, projects with open source code. In the world, there are thousands of open-source projects, and many of them are quite active, where a programmer can gain any experience their heart desires. If you are drawn to the idea of developing an operating system systems, choose one of the ten available operating system projects for yourself.
...
➦ Time changes everything
Aug 03, 2024
in •
DUDE
wise
first
easy
dude
time
assignment
look
solutions
lot
3 min read
Seeing what has survived and what hasn’t has long been one of my favorite vivid forms of amusement. There were a plethora of patterns, infrastructures, paradigm shifts, and algorithms. Wise people debated them fervently, considered long-term views, and attempted to strike a balance between all the known components, but in the end, they came to naught. Why? What is the past attempting to teach us?
Pick a noble assignment For a software architect, this is highly challenging. We receive assignments and issues from the client, so we really don’t have a choice, do we? It’s not really that easy. First of all, we frequently make the error of thinking that we have little power over what the customer desires. But it’s typically possible to just step outside of your comfort zone when it comes to technology.
...
➦ Communication is the king, clarity and leadership are its loyal servants
Jul 31, 2024
in •
INDIA
india
visio
act
developers
software
clarity
project
leadership
3 min read
Psychology in IT manifests in everything. Every person has their own base tendencies to dominate. Remember that famous experiment where a group of people was divided into prisoners and guards? Or India with its castes? Well, IT is just like India.
Too often, software architects dwell in ivory towers, sending down specifications to developers and imposing technologies and directions on them. This often leads to conflicts, which are quickly followed by a “popular uprising.” As a result, a software product emerges that has nothing to do with the original requirements. Every software architect should be able to explain the goals and objectives of the software project to their colleagues. The keys to effective communication are clarity and leadership.
Clarity characterizes the communication process. No one in your group will become read a 100-page document justifying your architectural decisions.
...
➦ The golden rule of API design
Jul 29, 2024
in •
API
•
C#
•
JAVA
designing
api
java
code
testing
users
method
tests
3 min read
Designing application programming interfaces (APIs) is difficult, especially in the general case. When developing an API that will have hundreds or thousands of users, you need to consider that over time it will most likely need to be changed, and these changes can disrupt the functioning of the client code. Moreover, you need to consider the potential impact on your API from its users. If the API class calls its own method, it should be remembered that the user is capable of creating a subclass of your class and overriding this method, which can lead to disaster. And you won’t be able to change this method because some of your users have given it a different meaning. You become dependent on your users when it comes to choosing the internal implementation.
...
➦