做一名优秀的软件开发qa

tech2022-09-24  93

做一名优秀的软件开发qa

As a PHP developer, or any kind of developer as a matter of fact, you need to constantly improve yourself in this ever-changing industry; you need to learn and use new knowledge every day.

作为PHP开发人员或事实上的任何类型的开发人员,您需要在这个瞬息万变的行业中不断提高自己。 您需要每天学习和使用新知识。

What successful developers have in common, is that they care about programming a lot, they are professionals treating good programming practices as a form of art.

成功的开发人员的共同点是,他们非常关心编程,他们是将良好的编程习惯视为一种艺术的专业人员。

In this article, you’ll learn about how to be a better developer by following the “etiquette” of programming and you’ll learn how to use this information to perhaps teach others to better themselves.

在本文中,您将通过遵循编程的“礼节”来学习如何成为一名更好的开发人员,并且还将学习如何使用此信息来教别人如何做得更好。

如何成为一名专业人士 (How to be a professional)

Professionalism, regardless of the job you’re working on, always starts with you. Professionals first and foremost have strong personalities and characters.

无论您从事什么工作,专业素养总是从您开始。 专业人士首先具有很强的个性和品格。

As in any area of life, programming professionals are respected. Let’s see how you become one.

与生活的任何领域一样,编程专业人员也受到尊重。 让我们看看你如何成为一体。

不要自私 (Don’t be egoistic)

I’ve had the chance to work in large teams since I practice this craft and the most important team dynamic I learned early on is that team and collaboration goes hand in hand.

自从我练习这项技巧以来,我就有机会在大型团队中工作,而我早期所学到的最重要的团队动态是团队和协作是紧密相连的。

What you do most of the time in a team is learn from and teach each other, and the work environment should always embrace and reward sharing.

您在团队中大部分时间都是在互相学习和互相教,,并且工作环境应始终包含并奖励共享。

If you don’t want to share your work and knowledge, you’re arrogant and/or have a big ego, you won’t feel comfortable working in an environment like this.

如果您不想分享自己的工作和知识,自大和/或有很大的自我,那么在这样的环境中工作会感到不舒服。

要负责任 (Be responsible)

Non-professionals don’t need to take responsibility for their own work. That’s left to the manager. They just get the job assigned to them and forget all about it when the clock hits 5 PM.

非专业人士无需为自己的工作承担责任。 这留给经理。 他们只是得到分配给他们的工作,而在时钟到下午5点时就忘记了所有事情。

A professional programmer can’t accept this. How would you feel if your bug cost your company thousands of dollars?

专业的程序员不能接受这一点。 如果您的错误使公司损失了数千美元,您会感觉如何?

This is a problem of which the solution also depends on management and how the company handles it. Every company should encourage developers to take responsibility of their actions and more importantly of the code they write.

这个问题的解决方案还取决于管理以及公司的处理方式。 每个公司都应鼓励开发人员对自己的行为负责,更重要的是对他们编写的代码负责。

If your bug slips onto the production server, do everything in your power to fix it as soon as possible, even if it takes all night long. This separates you from the nonprofessionals and gets you a higher paycheck.

如果您的错误流到了生产服务器上,请尽一切努力尽快修复它,即使它需要整夜。 这使您与非专业人员分离,并获得更高的薪水。

接受批评 (Accept criticism)

Software without bugs is impossible to write and we’re all victims of committing something stupid into the repository.

没有错误的软件是不可能编写的,我们都是将愚蠢的东西提交到存储库中的受害者。

How we handle criticism says a lot about how we are looked at as developers.

我们如何处理批评意见,说明了我们如何被视为开发人员。

Every criticism should be listened to and learned from, because that’s what makes you better at what you do, especially if you’re criticized by people who have way more experience than you do.

应当聆听和学习每一种批评,因为这会使您的工作做得更好,尤其是当您受到比您更有经验的人的批评时。

有强烈的职业道德 (Have a strong work ethic)

Being a professional is a non-stop job. Learning doesn’t last from 9 to 5.

成为专业人士是不间断的工作。 学习不会从9持续到5。

Constantly learning, practicing and improving yourself is an investment in yourself and it’s your responsibility, not your employer’s.

不断学习,练习和改善自己是对自己的一种投资,这是您的责任,而不是雇主的责任。

This should also happen outside of work – you shouldn’t rob your employer’s time to read up on the latest SitePoint tutorials [Hey! Easy! ;) -Ed.].

这也应该在工作时间以外发生–您不应该浪费雇主的时间来阅读最新的SitePoint教程[嘿! 简单! ;)-Ed。]。

There’s just not enough time, you say? Of course there is! You just have to think smart. If you want to take your career seriously, then focus on it seriously.

你说没有足够的时间吗? 当然有! 您只需要考虑聪明。 如果您想认真对待自己的职业,请认真关注它。

Get up early, leave a little bit late. Use those extra hours to your advantage without sacrificing your health and family.

早起,晚一点。 利用这些额外的时间为您带来好处,而不会影响您的健康和家庭。

Just half an hour before and after work means an extra five hours every week. That’s more than half an entire eight hour work day.

上下班前半小时意味着每周要多花五个小时。 整个八个小时的工作时间超过一半。

如何编写好的代码 (How to write good code)

阅读源代码 (Read source code)

Look at it this way: you can’t learn reading fast if you do not practice reading at all. The job of the developer is to write good code, but you can’t write good code if you don’t know what good code looks like.

这样看:如果您根本不练习阅读,就无法快速学习阅读。 开发人员的工作是编写好的代码,但是如果您不知道好的代码是什么样子,就无法编写好的代码。

Most developers blindly use third party libraries without touching the source code. This is okay to do, but to understand how that particular library can help, you need to dig in deeper and read its source code, the comments, run the tests (if it has any).

大多数开发人员在不接触源代码的情况下盲目使用第三方库。 可以这样做,但是要了解该特定库如何提供帮助,您需要更深入地挖掘并阅读其源代码,注释,运行测试(如果有的话)。

Reading code will help you quickly find other developers’ mistakes too and this helps a lot if you do code review or pair programming.

阅读代码也将帮助您快速发现其他开发人员的错误,如果您进行代码审查或配对编程,则很有帮助。

学习新技术 (Learn new techniques)

Always be open to learning new techniques and decide how they can help you be a better programmer.

始终乐于学习新技术,并决定它们如何帮助您成为一名更好的程序员。

Be open to new things all the time, don’t just dismiss the latest trends because you think they’ll pass. Everything is cyclical, but what’s constant is the knowledge you’re left with by opening your mind to it.

时刻保持对新事物的开放态度,不要仅仅因为认为最新趋势会过去就忽略了最新趋势。 一切都是周期性的,但不变的是通过开放思想而剩下的知识。

A good developer never stops learning, even with 15 – 20 years of practice behind him.

优秀的开发人员即使拥有15至20年的实践经验,也从未停止学习。

慢一点 (Slow down)

Slowing down means to take a little bit more time on evaluating the problem you’re trying to solve. Being fast is not something you should strive for.

放慢速度意味着要花更多的时间来评估您要解决的问题。 快不是你应该争取的东西。

I’ve seen junior developers getting the task and delivering the code as fast as they could, resulting in buggy code, which took more time to fix than if they sat down and thought really hard of the right solution.

我已经看到初级开发人员尽可能快地完成任务并交付代码,导致错误的代码,比他们坐下来认真思考正确的解决方案要花费更多的时间来修复。

Senior developers are lazy and slow, and this is in everybody’s best interest, because a good programmer doesn’t want to do the job twice.

高级开发人员懒惰且缓慢,这符合每个人的最大利益,因为优秀的程序员不愿重复两次工作。

For a senior developer, writing the actual code takes up a third of his time spent on the task, the rest is thinking of a good solution for the problem.

对于高级开发人员而言,编写实际的代码将花费他三分之一的时间,其余时间则在为该问题提供一个好的解决方案。

测试你的代码 (Test your code)

This won’t be a TDD or no TDD debate, but bear in mind that tests of any nature are very important for delivering quality code.

这不是TDD辩论,也不是TDD辩论,但请记住,任何性质的测试对于交付高质量代码都非常重要。

How do you know if something broke without testing it? Do you know what you were doing a couple of months ago on a particular feature’s code base?

您怎么知道是否未经测试就损坏了? 您是否知道几个月前在特定功能的代码库中正在做什么?

From tests, you can learn how the code actually works. It’s like a guide for developers just as the table of contents of a book. Tests show you where to look and what to look for.

通过测试,您可以了解代码的实际工作方式。 就像书的目录一样,它就像是对开发人员的指南。 测试会向您显示在哪里以及要寻找什么。

Writing tests for your code is important and hard at first, but it was proven to be beneficial in the long run countless times.

首先,为代码编写测试很重要而且很困难,但是从长远来看,它被证明是有益的。

了解您的工具集 (Know your toolset)

Know what kind of tools you can use to help you fight the problem. Most of the tools, at the end of the day, come down to preference, but bear in mind that a good tool or library can help you out a lot.

了解可以使用哪些工具来解决问题。 归根结底,大多数工具都取决于偏好,但是请记住,好的工具或库可以为您提供很多帮助。

Just think of how much time you spend in an editor, be it a full blown IDE or just a syntax highlighted text editor.

只需考虑一下您在编辑器中花费了多少时间,无论是功能完善的IDE还是仅是语法突出显示的文本编辑器。

Also, you should decide whether it’s worth it to use a specific library for the job or not. Is it worth it to use a PHP framework? What are the pros and cons? Does using a clunky CMS for a project pay off?

另外,您应该决定是否需要为工作使用特定的库。 使用PHP框架值得吗? 优缺点都有什么? 在项目中使用笨拙的CMS是否有回报?

These are the questions you should think of before even writing a single line of code.

这些是您甚至在编写一行代码之前就应该考虑的问题。

如何保持正轨 (How to stay on track)

对抗倦怠 (Fight burnout)

Constantly pounding out code in a seemingly never ending cycle can be tiresome. Most developers who were in this business for long enough at some point in their career experienced burnout.

在看似永无止境的循环中不断敲打代码可能很烦人。 从事这项业务足够长的时间的大多数开发人员在职业生涯中都经历了倦怠。

Burnout is associated with working long hours and what’s called the imposter syndrome, which means that a developer constantly thinks he’s not good enough and in order to be better he needs to work harder and to work more, while more doesn’t necessarily mean better.

倦怠与长时间工作和所谓的冒名顶替综合症有关 ,这意味着开发人员不断认为自己不够好,为了变得更好,他需要更努力地工作和更多地工作,而更多的工作并不一定意味着更好。

The best medicine for this is to just step back, get out of that cycle and do other stuff, creative stuff. Take time off, even if it’s just a couple of days.

最好的办法就是退后一步,摆脱这种循环,去做其他一些有创造力的事情。 即使只有几天,也要花点时间。

Another solution, increasingly popular in fighting burnout, is to find a team member with whom you can do pair programming. The social interaction with another human being is very effective.

在解决倦怠方面越来越流行的另一种解决方案是找到一个可以与您进行配对编程的团队成员。 与另一个人的社交互动非常有效。

代码维护 (Code maintenance)

Staying on track also means keeping a clean code base. Not just for others, but for yourself, too. Code without tests or documentation is like Russian roulette.

保持正轨还意味着保持干净的代码库。 不只是为了别人,也为了你自己。 没有测试或文档的代码就像俄罗斯轮盘赌。

What happens when you need to revisit some feature a couple of months down the road? You’ll spend more time figuring out what you were actually doing than on the task itself.

如果您需要在几个月后重新访问某些功能,会发生什么情况? 与花在任务本身上的时间相比,您将花费更多的时间来确定自己实际在做什么。

I’ve seen clients approaching developers to refactor their project countless times, because the previous team lost interest or couldn’t work on it anymore, and almost all the time the new team’s response was that it must be rewritten from scratch.

我看到客户无数次地邀请开发人员重构他们的项目,因为前一个团队失去了兴趣或无法继续工作,而且几乎在所有时间里,新团队的React都是必须从头开始重写。

That happens because the previous team wasn’t capable of maintaining a clean, solid code base. This practice takes a lot of time; read the article called 18 Critical Oversights in Web Development which touches on how to keep code clean and other best practices.

之所以发生这种情况,是因为以前的团队无法维护干净,坚实的代码库。 这种做法需要很多时间。 阅读了一篇名为《 Web开发中的18个关键疏忽》的文章,其中涉及如何保持代码干净以及其他最佳实践。

根据估计 (On estimates)

Estimates are a sensitive matter for many programmers and managers, and they shouldn’t be. I’m sure everybody heard of the case where managers ask developers how much time a task would take, and they expect clear answers, but the estimated task still takes up double the time that was initially estimated.

对于许多程序员和经理来说,估计是一件敏感的事情,而事实并非如此。 我敢肯定,每个人都听说过经理问开发人员任务需要花费多长时间的情况,他们期望得到明确的答案,但是估计的任务仍会花费最初估计的时间的两倍。

What most people fail to realize is that estimates are only guesses and not commitments. To be a better developer you should know that an estimate is never ever a commitment, because once you commit yourself to something, it means you’re responsible for delivering it.

大多数人没有意识到的是估算只是猜测,而不是承诺。 要成为一个更好的开发人员,您应该知道,估算永远都不会成为承诺 ,因为一旦您对某件事做出承诺,就意味着您有责任交付它。

Estimates never were and never will be commitments, this is the nature of an estimation. People are horrible at estimating time for a given task, and if your manager asks for this, you should tell him that you can’t commit yourself to something you’re not 100% sure of you can do on time.

估计从来都不是承诺,这是估计的性质。 人们在估算给定任务的时间时非常恐怖,如果经理要求,您应该告诉他,您不能承诺自己不能百分百确定能否按时完成。

You can, however, make a guess, but don’t make any promises.

但是,您可以猜测,但不要做出任何承诺。

如何成为大师 (How to be a master)

通讯 (Communication)

It’s all about the communication. I’ve seen projects and companies fall apart because team members couldn’t communicate.

一切都与沟通有关。 我已经看到项目和公司分崩离析,因为团队成员无法沟通。

Keep communication simple and straightforward, cut out the middlemen between you and the receiver. Every “node” in your communication line creates almost exponential complications.

保持沟通简单明了,减少您和接收者之间的中间商。 通讯线路中的每个“节点”都会造成几乎成倍的复杂性。

Enterprise suffers from this a lot – this is why it’s moving so slow, every decision has to go through a dozen people, and this is where agile teams shine.

企业为此遭受了很多苦难–这就是为什么它发展如此缓慢,每个决定都必须经过十几个人的原因,而这正是敏捷团队的出众之处。

Keeping communication simple and concise means you can move faster than others, you can understand your tasks more clearly and this gives you an advantage, so don’t be afraid to ask and to ask specific questions.

保持沟通的简洁明了意味着您可以比其他人更快地行动,可以更清楚地了解自己的任务,这为您带来了好处,因此不要害怕提问和提出具体问题。

合作 (Collaborate)

Besides being a good communicator you’ll also need to be a good collaborator, and let’s face it, programmers are not the most social people out there.

除了要成为优秀的沟通者,您还需要成为一个良好的协作者 ,让我们面对现实吧,程序员并不是那里社交性最强的人。

You need to collaborate not just with other developers, but also with your manager, and maybe directly with the client.

您不仅需要与其他开发人员进行协作,而且还需要与您的经理进行协作,甚至可能直接与客户进行协作。

Collaboration also means knowing what’s at stake and to get the job done and to be a good team player.

协作还意味着了解关键问题并做好工作并成为一个好的团队合作者。

If you find it hard to collaborate effectively with others, try out pair programming. The very essence of pair programming is collaboration.

如果您发现很难与他人有效地进行协作,请尝试配对编程 。 结对编程的本质是协作。

See also this article on working with other people’s code.

另请参见这篇文章与其他人的代码工作。

知识的诅咒 (The curse of knowledge)

According to Wikipedia: “The curse of knowledge is a cognitive bias that leads better-informed parties to find it extremely difficult to think about problems from the perspective of lesser-informed parties.”

根据Wikipedia的说法:“知识的诅咒是一种认知偏见,它导致消息灵通的政党很难从消息灵通的政党的角度来思考问题。”

Basically, senior developers are having a hard time explaining problems so simple that junior developers can understand. This happens because they’re all very familiar with the problem and the techniques at hand to solve it, but when they try to explain it to others, they fail, because that explanation is just a summary of the knowledge in their head.

基本上,高级开发人员很难解释问题,所以初级开发人员可以理解。 发生这种情况是因为他们都非常熟悉问题和解决问题的技巧,但是当他们尝试向他人解释问题时,他们会失败,因为这种解释只是他们脑海中的知识的总结。

Simply put, when you know something, it’s very hard not knowing it. To fight this, you need to use specific language. Explain a problem in such detail that you find it funny even, but keep doing it, because your state of mind is not equal to the state of mind of the recipients.

简而言之,当您知道某事时,很难不知道。 为了解决这个问题,您需要使用特定的语言。 详细说明问题,即使您觉得它很有趣,也要继续做下去,因为您的心态不等于接收者的心态。

了解你的领域 (Know your field)

If you call yourself an expert in programming, then be an expert in programming. Know your field from top to bottom and don’t be afraid to say no as many times as you see fit.

如果您称自己是编程专家,那么请成为编程专家。 从上到下了解您的领域,不要害怕在您认为合适的时候说很多次。

To oversimplify this, being an expert is all about saying no to others, because that means you’re defending your truth, and having seniority among your peers, you’re probably right most of the time.

简而言之,成为专家就是要对别人不说,因为这意味着您在捍卫自己的真理,并在同龄人中享有年资,您在大多数情况下可能是对的。

Knowing your field doesn’t necessarily mean you have a CS degree, it means you have a lot of experience and practice in what you do. You need to improve your skills not just in general programming, but in computer engineering and architecture.

了解您的领域并不一定意味着您拥有CS学位,这意味着您在所做的事情上有很多经验和实践。 您不仅需要提高常规编程的技能,还需要提高计算机工程和体系结构的技能。

Being an expert means you find the best possible programming design for a problem, writing code is the “side effect” of this.

成为专家意味着您可以找到问题的最佳编程设计,编写代码是这样做的“副作用”。

了解您从事的业务 (Understand the business you’re in)

Nobody can create good software without knowing the problems of the business and what they’re trying to solve with your code.

没有人不知道业务问题以及他们试图用您的代码解决什么问题,谁都无法创建好的软件。

You need to be proactive and interested in the business, because that reflects onto your work. Without clear goals and specific problems the code will inadvertently be a mess, that’s how coding works.

您需要积极主动地对业务感兴趣,因为这会反映到您的工作中。 没有明确的目标和特定的问题,代码会无意间混乱,这就是编码的工作方式。

You need to keep a tight leash on what features to implement and especially how, but for this the business value must be crystal clear.

您需要密切注意要实现的功能,尤其是如何实现这些功能,但是为此,业务价值必须明确。

If you feel that your expertise and the business’s goals do not align very well, then do yourself a favor and don’t accept the job. Value your time, because that’s priceless.

如果您觉得自己的专业知识与业务目标不一致,那么请帮自己一个忙,不要接受这份工作。 珍惜您的时间,因为那是无价的。

代码片 (Code katas)

To constantly improve yourself, first you must know at what level you are.

为了不断提高自己,首先必须知道自己处于什么水平。

Code katas are exercises for programmers to improve their skills by practicing and finding better solutions for different problems.

代码选项卡是程序员的练习,可以通过练习和找到针对不同问题的更好解决方案来提高他们的技能。

You can try solving code katas at Project Euler, CodeKata or Topcoder.

您可以尝试在Euler项目 , CodeKata或Topcoder中解决代码问题。

Topcoder even offers prizes for finding the best solution to their programming challenges.

Topcoder甚至为寻找最佳编程挑战解决方案而提供奖项。



结论 (Conclusion)

Programming is more a social skill than anything else. To be a good programmer, first you must work on your personality if you find yourself introverted. Then, master the programming principles.

编程比什么都不是更多的社交技能。 要成为一名优秀的程序员,首先,如果您发现自己内向,就必须努力发展自己的个性。 然后,掌握编程原理。

You need to constantly improve yourself, to constantly learn, to be one step ahead of the game. To truly achieve professionalism you need to understand the business and the problem you’re trying to solve with your code.

您需要不断提高自己,不断学习,才能领先于游戏。 要真正实现专业水平,您需要了解业务以及您要使用代码解决的问题。

Code is just a side product of the whole solution to the problem and it adds very little to the big picture. The ideas for solutions, the skills for collaboration and the mastery of the tools you need to use to solve a problem are the key to becoming a respected professional.

代码只是解决问题的整体解决方案的副产品,它对总体没有太大的帮助。 解决方案的思想,协作的技巧以及对解决问题所需要使用的工具的精通,是成为受人尊敬的专业人员的关键。

For more on becoming a professional, see this series, and if you have anything you’d like to add to this list, please let us know in the comments below.

有关成为专家的更多信息,请参阅本系列 ,如果您有任何要添加到此列表的内容,请在下面的评论中告诉我们。

翻译自: https://www.sitepoint.com/good-developer/

做一名优秀的软件开发qa

相关资源:软件开发过程中的QA和qc
最新回复(0)