Home  >  Article  >  Backend Development  >  I built a salary system using Node.js. I think it’s good, but why does my boss think it’s low-level?

I built a salary system using Node.js. I think it’s good, but why does my boss think it’s low-level?

WBOY
WBOYOriginal
2016-10-09 08:33:141364browse

Reply content:

In fact, I can understand the questioner's confusion, and I believe many people can understand it (of course, most people will close the page after looking at it and will not go out of their way to answer it. I can't sleep at night to say a few words).

Generally speaking, anyone who is particularly passionate about programming will definitely want to practice what they have learned to solve specific problems after learning it for a period of time. This is a good thing, it is right to apply what you have learned. But one characteristic of programmers at this stage is that they are full of passion and fearless, but they have high ambitions and low abilities, and they are still stubborn. I don't mean to offend, but I am actually ashamed to say that I have gone through this stage before, for several years. But I am not ashamed to say that this is not wrong. Many programmers who we think are great were like this before. why? Because I have no experience and little knowledge, I add a little bit of self-righteousness. (Don’t be angry after reading this, you must remember that I emphasized that I have been like this, not just for you, but also for myself)

First of all, I hope you will continue to study hard, and don’t think you have been hurt because of other people’s criticism (as long as there is a little Those who pursue are arrogant in their bones, often have strong self-esteem, but are also very sensitive). You must know that these sharp criticisms are actually very valuable, because they point out your problems and promote your progress. You have to learn to accept a little advice from others, which is the key to progress.

For example, the interface is ugly. To be honest, they are right. This is a face-based world. Not to mention the interface is simple, it has directly aroused disgust. The first reaction of ordinary people when seeing it is to deny it in their hearts. , then your explanation won’t change anything. So you have to understand that for a good software, not only the core must be powerful, but the interface must also be up to standard. And your interface can only get 1.5 points out of 10. That 0.5 is a lucky break. Sorry, objectively speaking, I can only give so much. If you can't make the interface pass the 6-point mark, there's no point in adding more functions, because no one will be interested in continuing to learn about it.

Some people also mentioned the comparison with Excel+Vba. I think people who say this are often more experienced and they can especially consider their customers. This kind of consideration for customers should not be simply understood as not daring to make breakthroughs and not daring to jump out of Excel and create your own solutions. In fact, they would rather choose Vba, choosing a solution that does not highlight their "high technology" but is completely based on user habits and learning costs. This is an essential quality for all successful commercial software designers - user-friendly, not convenient. Self; user-centered, not self-centered. Where did this quality come from? It is definitely not something you are born with, but something you learned painfully after going through a stage like yours and being beaten to pieces by reality. But this cannot be said to be a lesson. It is actually a service spirit required for the healthy functioning of society. It is our transformation from "treating technology as art" to "treating technology as a tool". We have removed technology from the altar and gained a new understanding after correcting our position and mentality. They definitely don't want to harm you when they tell you this knowledge. Although the words are a bit blunt, you should try to think and understand first, and don't rush to deny or argue.

As for what you mentioned about letting users learn SQL statements. I don't think it's strange to think this way. Because you feel like it’s the “right choice.” Moreover, this is a more "powerful" solution, and learning it has "every benefit but no harm".But according to this logic, I think you should let them learn Matlab directly. As we all know, Matlab is very powerful and "easy to learn". The difficulty is probably a little higher than SQL. But after learning it, why do you need other software for various data processing? If you and your boss have enough learning ability, you can also install an artificial neural network toolbox and directly perform machine learning on your salary. Why stop at automatic calculation of salary (smile)? Do you think you're holding them back by just asking them to learn SQL? Are you afraid they will take your job? You have the wrong mentality. The selection of technical solutions is still based on selfish motives and is too conservative and not far-sighted enough.

Of course it’s just a joke, you should be able to understand the meaning. Your requirements and expectations for your users are as high as your expectations for yourself. You feel in your heart that "this is also for their own good." In fact, they want you to be as stupid as possible, not as powerful as possible.

They really don’t expect power, they expect simplicity. I hope it will be beautiful and look good when used. If you can meet these requirements, they will not be stingy about respecting you. Because you deserve to be respected.

But when they see the poor interface, unclear concepts and your stubborn justifications, they don’t feel that you respect them. So how can you expect them to respect you?

The last thing to say is your wild road problem. In fact, there is no need to feel inferior. As long as you are open-minded and willing to learn, read more books and practice more, there is nothing you can’t learn that can only be learned in the classroom. This is not inspirational, this is fact.

Please keep up the good work. Take good care of you. I have also encountered a situation similar to the one in question. The specific situation is that the Internet cafe originally had an excel-based reporting system for statistical purposes after the end of each shift. However, there was a more serious problem, which was due to the general quality of the cashiers. Not high, copying and pasting between cells is explicitly prohibited (since the report is calculated through formulas, copying and pasting will destroy the reference relationship), but there are still a large number of new employees who copy and paste at will, resulting in various calculation errors.
So the need arises to develop a reporting system that will not be affected by copy and paste, and that can allow managers to define the relationships between various data entities themselves.
I think about it, isn’t this requirement difficult? So I spent a few days building a simple reporting system (using Node.Js), which can basically meet the requirements mentioned above.
But it’s faster. Serious problems were discovered before it was officially launched. If it was a big problem before that the excel format was easy to mess up, then the current version makes employees even more confused: because the excel operation is really too difficult. It’s easy to learn, and most people can operate it skillfully based on their previous experience. After all, there are still many veteran employees.
So I thought of a way to transform excel, because the previous excel solution actually had only one problem, but there were many benefits, such as stability; you can simply back up data by backing up files (without the need for a separate Learn something); get started quickly, etc. The specific solution is to use the built-in mechanism of Excel to solve this problem. I have explored this for a long time, and finally solved this problem through Excel’s built-in VBA, which is to directly block the copy function on the menu, and then Set a macro for the corresponding shortcut key and manually implement the copy and paste function. Only the value is changed without updating the formula reference. The problem is solved and the other party is very satisfied.
Why didn’t I choose to modify what I wrote? Because of the
cost! Excel can meet most of the needs, but how much does it cost to build a software that allows users to operate according to their existing habits? Even if you just create a subset of Excel functions, it is still a lot of work. With this energy and ability, why can't you do other things?
The value of an alternative project depends on whether it solves a problem while simultaneously introducing a larger problem. New things always have learning costs, especially when the solutions are completely different. If the problems caused by the learning cost are greater than the problems it solves, then it will be strange to be adopted. Also, can you ensure that what you write takes into account more edge cases than excel? Even if you take it into consideration, what about the people who will take over later? And what about the code written by financial personnel?
Such a system has almost no practicality. Apart from being used for practice, the practical value is really not high.
-----
If you really want to come up with a plan that can be accepted by your boss, you should collect requirements from the beginning. At the very least, you should know where the problems with the original plan lie and the different roles. There may be different needs. For example, the needs of employees may be to conveniently check their own wages, comparison with previous wages, and the reasons for the rise and fall of wages-or how wages are calculated; the needs of bosses and finance may be It is a convenient management function, such as adjusting some coefficients, or the proportion of related performance, adding a new influencing factor - I am talking nonsense about the above, I need to do my own research for the details. Then organize these requirements, design all use cases, and consider operations under different scenarios. This is the demand part. If you don’t do this part well, don’t start writing anything.During the process of sorting out requirements, remember to communicate with these people more. If you can't communicate well with this, the finished product will be more difficult to accept.
Then pay attention to the testingability during the coding process. It is best to be able to write unit tests. After all, this involves money. If something goes wrong, it will be much more serious than other problems.
Others have also said very well about the interface. In fact, I think the interface is really not the core of the problem, because once you design it in advance, can the interface not be easy to use?
Although I think if we really do this, this project will be rejected during the requirements analysis stage. . . My team is currently writing a personnel management system, also using nodejs. When I think about customers using our system, I never dare to think about increasing the learning cost for customers. Basically, it is a design where the customer clicks a button and the backend runs out of time.
I’m so scared when I see you talking about letting those financial people learn to use SQL. Why do you have such anti-human thoughts? I usually use sequelize or workbench to operate the database. Writing SQL directly is usually used for debugging or adding batch data.
If you really want to launch your product, you must not let your leaders think that your product will incur huge learning costs. A command line and a sql are enough to make most people change their minds.
Finally, a good-looking interface is the key to attracting customers. Our customers never fault the backend, only the font size of the page and so on. After all, they don’t understand (´・_・`). It is recommended that you use bootstrap to quickly develop front-end pages, flat design, based on jquery, low learning cost, and the key is that it looks good.
Sao Nian, since you think it is not difficult for finance people to learn SQL, then it should not be difficult for you to learn bootstrap


~~~ Alas, I didn’t mean it...

1. Do you dare to be uglier?
2.Learn sql? are you kidding!

You have to consider a few questions:

1. Colleagues are idiots
2. Users are idiots
3. Products are idiots


After reading the above three, do you still dare to say that you have improved efficiency? The questioner is very thoughtful and talented.
But this work is generally called pseudo-needs that are divorced from the actual needs of users.
To make a software, it must first be used by people.
Then first we need to find the target customers and actual users of this software.
Then investigate and analyze their needs.
Of course, different people have different needs, and they need to be classified into different levels.
So it’s not about what the developers think.
It’s not up to the developer whether it’s good or not, because he’s not the end user and doesn’t know what will happen in the actual application scenario.
Your boss is right. It turns out that the financial staff are very proficient in using Excel, so it is not difficult for people to meet. They are used to it and have no need to change it.
The questioner is kind-hearted and said that it takes two minutes to do something in 15 minutes. It may be based on the subject's own technical level. If it is a financial staff, it may be the other way around.
And there are a lot of training costs in the early stage.
And the questioner can guarantee that the program has no bugs? Are you sure that there will be no data loss due to unskilled operations by users?
Another question, if you are doing an improvement project, you must also consider the operating habits formed by users.
When ordinary users encounter something that is not easy to use, their first reaction is that it is not easy to use.
Then you may become proficient in using it, and then you can objectively compare it with the original situation. To put it bluntly, it is downward compatibility of user habits.
Think about how controversial Win8 was when it came out.
The third question is that the page of the question is too shabby. To put it bluntly, it smells like a copycat. The average user is not familiar with technology, but they are still very concerned about GUI. If you have many awesome technical methods behind you, if they don’t look good, they will feel unhappy.
Also, don’t talk about the command line to users, I’m tired of reading it, let alone ordinary users.
In short, the subject of the question is a useless semi-finished product in the eyes of ordinary users. The purpose of the question is mainly for promotion, and more work is needed.
If your operations are friendly enough and you can solve their practical problems more effectively and conveniently, I think your boss will agree with you. You change the English inside to German and the symbols into rune letters
This is basically how your program appears to non-programmers. Get a front-end, set the input conditions, and let people click on it directly. Want Muggles to use magic? Instead of teaching them spells, they made them into scrolls and sold them. You let business people learn code. . Do you want someone who can't learn to scold you or someone who can learn to replace you? Let users write sql statements? ? And then you just execute? ? All the big assignments I did in college were more than this level, okay... Anyone who makes software should know, never trust user input... Last time I made a spa and a delete button, I tried 3 positions before finally settling on it.
I heard a saying before, "Treat users as idiots, as extremely impatient naughty children, and you are right."
I didn't think so before, but after several pitfalls, I fully agreed.
Users don’t think about the complexity of the application. The only considerations are whether it feels good to use, whether it is good-looking, whether it can be used for sex, and whether it can flirt with girls.The first principle of programming is to treat the user as a fool who knows nothing. In this way, when designing your own program interface and logic, you can ensure that the final result is problem-free...

Obviously, what you make It’s too far away from this goal...

Generally, a project that can operate content needs to have things with different permissions and a background management interface. It is not just for display, because directly operating the database is A big no-no, it is usually necessary to encapsulate it and then complete the data verification permissions. Administrators rarely directly operate the data. They operate the data on the background management page...because people are confused sometimes and their hands slip. Operate the database, what should you do if you make a mistake? The most important thing is to be cautious...

Now you not only have to remediate front-end knowledge, but also have a lot to learn about user experience design, so you don't have so many Low-level errors appeared...

If I want to rate this system, out of 100 points, I will give 1 point at most... It's just that the interface is out... You don’t understand what the boss means

What he means

After everyone gets used to it, if your kid resigns, who will I look for to protect you in the future?
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:php lottery algorithmNext article:php lottery algorithm