ux界面比较多
One of the biggest misconceptions of being a designer is that creativity is the most important trait to have. I’m not even sure this is true for the more visual forms of design (illustration, branding, etc.), let alone UI/UX. And while I do believe it is a form of art, it is not necessarily because of its aesthetics.
成为设计师的最大误解之一是创造力是最重要的特征。 我什至不确定对于更直观的设计形式(插图,品牌等)是否适用,更不用说UI / UX了。 虽然我确实相信这是一种艺术,但不一定是因为它的美学。
Design is the art of solving complex problems with simple solutions, empathizing with all the people involved in the process — including users, stakeholders and your team.
设计是一种通过简单的解决方案来解决复杂问题的艺术,并向过程中涉及的所有人员(包括用户,利益相关者和您的团队)表示同情。
Therefore, the real important traits of a designer have more to do with problem solving, collaboration, adaptability and empathy. If you’re a software engineer I’m sure you can relate to at least the first three I mentioned. (Empathy is tough to master, but it can be learned).
因此,设计师的真正重要特征与解决问题 , 协作 , 适应性和同理心有关 。 如果您是软件工程师,我相信您至少可以与我提到的前三个相关。 (空虚很难掌握,但是可以学习到 )。
Furthermore, the design world is extremely diverse and inclusive: there is room for literally any kind of background. Specifically, you can be greatly advantaged by your software engineering expertise when learning UI/UX and product design.
此外,设计世界是极其多样化和包容的 :实际上,任何类型的背景都有空间。 特别是,在学习UI / UX和产品设计时,您可以从软件工程专业知识中受益匪浅。
Or, if you’re a designer, you might look into some very interesting topics to expand your knowledge and have a new perspective on design.
或者,如果您是设计师 ,则可以研究一些非常有趣的主题来扩展您的知识并对设计有新的看法。
这是可以(并且应该)应用于UI / UX和产品设计的7种开发特定技能 (Here are 7 Development-specific Skills That Can (and Should) Be Applied to UI/UX & Product Design)
![Image for post](https://miro.medium.com/max/9999/1*UV6lmYquXIyAYfszxXuS4A.jpeg)
1-面向对象的编程 (1 — Object oriented programming)
The idea behind classes and objects is quite primordial, as it’s based on a mental model that was already being explored by philosopher Plato in his theory of forms.
类和对象背后的思想是非常原始的,因为它是基于哲学家柏拉图在形式理论中已经探索过的心理模型。
The nature of the model is very polymorphic (if I’m allowed to borrow this term) and can be used to work with systems of any kind, outside of software development. In fact, designers are already borrowing those principles and applying them to object oriented UX design.
该模型的本质是多态的 (如果允许我借用这个术语的话),并且可以用于软件开发之外的任何类型的系统。 实际上,设计人员已经在借鉴这些原理并将其应用于面向对象的UX设计 。
Regardless of the chosen design approach, OOP fundamentals will give you many advantages, especially in making design systems more modular, scalable and organized:
无论选择哪种设计方法,OOP基础知识都将为您带来许多优势,尤其是在使设计系统更具模块化 , 可伸缩性和组织性方面 :
Inheritance and encapsulation will help you fully understand atomic design systems and make them more efficient.
继承和封装将帮助您充分了解原子设计系统并使它们更有效。
Abstraction is a powerful principle to make any design clearer, simpler and more self-explanatory for both users and your team.
抽象是一项强大的原则,它可以使用户和您的团队的设计更清晰,更简单,更容易解释。
Polymorphism can be used to make sure your design components are designed to be used as tools to solve multiple problems in different use cases, as opposed to just a one time solution to a specific problem.
多态性可用于确保设计组件被设计为可用来解决不同用例中的多个问题的工具,而不是针对特定问题的一次性解决方案。
2 —函数式编程 (2 — Functional programming)
Similarly to OOP, functional programming comes with some interesting principles. Here’s why the functional approach can help you design better interfaces and experiences:
与OOP类似, 函数式编程附带一些有趣的原理。 这就是功能方法可以帮助您设计更好的界面和体验的原因:
You’re focused on designing complete flows and interactions as opposed to just components and layouts, giving more importance to how things work rather than how they look.
您的工作重点是设计完整的流程和交互 ,而不仅仅是组件和布局,因此更加重视事物的工作方式而不是外观。
The flows work together as a system and are thought to be reusable and consistent. They can be refactored easily and nothing is left to chance.
这些流作为一个 系统 协同工作,并且被认为是可重用和一致的。 它们可以轻松地进行重构,没有任何机会。
You want to make interactions efficient when combined to have the user perform a certain task: they need to work well as a whole. How interactions work inside of a flow is much more important than how they work by themselves.
您希望组合在一起时使交互有效 ,以使用户执行特定任务:他们需要整体上良好地工作。 交互在流内部的工作方式比它们自己的工作方式重要得多。
![5 people sitting at a table all working together with laptops.](https://miro.medium.com/max/9999/1*i8TEZH6GqSb_YtZB_r7zkw.jpeg)
3-敏捷原则 (3 — Agile Principles)
The Agile Manifesto you know and love is focused on software development and thought for engineering teams. However, it can be brought to design to dramatically improve the process and its outcomes:
您了解和喜爱的敏捷宣言专注于软件开发和工程团队的思考。 但是,可以将其引入设计以显着改善过程及其结果:
Customer collaboration (over contract negotiation) can be expanded to include collaboration with users and other stakeholders and it’s easily the best way to make sure you’re building the right product for the right audience.
客户协作 (通过合同谈判)可以扩展为包括与用户和其他利益相关者的协作,这是确保为正确的受众构建正确的产品的最佳方法。
Responding to change (over following a plan) can teach designers not to fall in love with an idea and be ready to watch their assumptions being completely destroyed. Not all designers can handle that.
响应变更 (遵循计划)可以教会设计师不要爱上一个想法,并准备看着他们的假设被彻底摧毁。 并非所有的设计师都能处理。
Individuals and interactions (over processes and tools) puts a focus on team collaboration and healthy dynamics inside the organization, making them much more important than the actual processes and tools. In UI/UX design, it’s important not to think good tools equal good design, because they don’t, and it’s even more important to make it a team effort vs. working solo.
个人和交互 (通过流程和工具)着重于团队协作和组织内部的健康动态,这使它们比实际流程和工具更为重要。 在UI / UX设计中,重要的是不要认为好的工具等于好的设计,因为它们不一样,而且更重要的是使之成为团队合作而不是单独工作。
Working software (over comprehensive documentation) can be reinterpreted as making sure the design addresses and solves real problems by testing it with real people, and that’s more important than backing it up with a lot of design and research docs no one will read, especially if it doesn’t really make users achieve their goals when put to test. It might also be expanded with the concept of self-explanatory design vs. an interface that needs extensive documentation to be used properly — though I recognize this might be a bit of a stretch.
可以将工作软件 (包含完整的文档)重新解释为通过与真实的人进行测试来确保设计能够解决并解决实际问题,这比提供许多没人能读的设计和研究文档来支持更为重要,尤其是当在测试时,它并不能真正使用户实现其目标。 它也可以通过自解释设计的概念进行扩展,而不是需要大量文档才能正确使用的界面,尽管我知道这可能有点麻烦。
And I could write an entire article on how the Twelve Principles of Agile Software can be applied to design without changing a thing — I might do that soon, actually. But in short, they’re all extremely relevant to UI/UX design and I would go as far as saying every designer should know them.
我可以写整篇文章,探讨如何在不做任何更改的情况下将敏捷软件的十二个原理应用到设计中,实际上,我很快就会这样做。 简而言之,它们都与UI / UX设计极为相关,我什至会说每个设计师都应该了解它们。
4 —版本控制 (4 — Version control)
Design is an iterative process, but the practice of version control is not very popular among designers just yet.
设计是一个反复的过程,但是版本控制的实践在设计人员中还不是很流行。
Developers are more used to keep track of all the iterations, what changes have been made and why, have access to learnings and comments of previous versions, maintain different branches, etc. Which is all really, really good stuff that is very much needed in modern product design teams.
开发人员更习惯于跟踪所有迭代,进行了哪些更改以及为什么进行更改,可以访问以前版本的知识和注释,维护不同的分支等。所有这些都是非常非常好的东西,在此方面非常需要现代产品设计团队。
Some tools that you might pick up pretty quickly — maybe quicker than most designers — are Abstract, Plant and Kactus.
![Picture of desert with clouds and a dry tree](https://miro.medium.com/max/9999/1*ScCa0iE4P_gfxMDQ8L26UA.jpeg)
5-DRY原理 (5 — DRY principle)
I remember learning about the “Don’t Repeat Yourself” principle back when I was designing and developing custom WordPress themes with poorly written PHP (I know, but it was a billion years ago and karma has already punished me by making me a designer).
我记得当我在设计和开发使用写得不好PHP的自定义WordPress主题时就了解了“ 不要重复自己 ”的原理(我知道,但是那是十亿年前的,业力已经使我成为设计师而惩罚了我) 。
The obvious correlation with design is you want to set up your design system so that you define each component just once and you don’t need to edit multiple instances when making an update.
与设计的明显关联是您想要设置设计系统,以便只定义一次每个组件,并且在进行更新时不需要编辑多个实例。
But I find this particular quote to be even more relevant for design:
但是我发现这句话与设计更加相关:
“Every piece of knowledge must have a single, unambiguous, authoritative representation within a system”
“每条知识在系统中都必须具有单一,明确,权威的表示形式”
Following this principle you can make sure you’re not using different design patterns to accomplish the same goals, you’re limiting your system to few reusable modules, you’re consistent and clear with labelling and copywriting in general, you avoid ambiguity, etc. In other words, it’s the principle that guides consistency and unambiguity, two pivotal aspects in any good design system.
遵循此原则,您可以确保不使用不同的设计模式来实现相同的目标,将系统限制为几个可重复使用的模块,可以与标签和文案写作保持一致和清晰,可以避免歧义等。换句话说,这是指导一致性和明确性的原则,这是任何好的设计系统中的两个关键方面。
6 —测试(单元,积分,回归等) (6 — Testing (unit, integration, regression, etc))
User testing is an essential part of the design process and this could already be enough to justify why your software testing experience can be beneficial when you learn UX design.
用户测试是设计过程中必不可少的部分,这已经足以证明为什么在学习UX设计时可以受益于软件测试经验。
What I really like about testing in software development is how big of a deal it is for engineers nowadays: if some crucial tests fail, the feature doesn’t make it to production. And it makes a lot of sense.
对于软件开发中的测试,我真正喜欢的是如今对工程师来说是多么大的一笔交易:如果某些关键测试失败,那么该功能就不会投入生产。 这很有意义。
Another aspect of testing is how it is meant to validate specific parts of the software and it often relies on stories and scenarios to give testers a clear plan. If I told you all designers have outlined their validation objectives when performing user testing, that would be a lie. Same goes for success criteria and testing methodologies. Overall, I personally think UX testing isn’t as mature yet and we can learn a lot from developers.
测试的另一个方面是验证软件特定部分的方式,并且通常依赖于故事和场景 给测试人员一个清晰的计划。 如果我告诉您所有设计师在执行用户测试时都概述了他们的验证目标,那将是一个谎言。 成功标准和测试方法也是如此。 总的来说,我个人认为UX测试还不成熟,我们可以从开发人员那里学到很多东西。
![Close view of gray laptop computer showing CSS code](https://miro.medium.com/max/9999/1*VapNniGKyf_2yoKTnAwYRg.jpeg)
7 —前端开发 (7 —Front end development)
I’ve left this one at the end because it’s kind of obvious: if you can code your own UIs, it’s a very nice skill to possess as a designer. Even in the case a designer is not really owning the front end implementation, knowing how to code can be very beneficial. Personally, my humble and limited front end knowledge is enough to give me some advantages:
我将其保留在最后,因为它很明显:如果您可以编写自己的UI,那么作为一名设计师,这是一项非常不错的技能。 即使在设计人员并没有真正拥有前端实现的情况下,了解如何编码也会非常有益。 就我个人而言,我谦虚而有限的前端知识足以给我带来一些好处:
I can think of the developer perspective when designing the interface in the first place: modularity, feasibility, designing for specific technologies, considering limitations, etc.
首先设计接口时,我可以想到开发人员的观点 :模块化,可行性,针对特定技术的设计,考虑限制等。
I can collaborate well with engineers and speak their language when discussing implementation. It really helps with empathy and interactions within a product team.
我可以与工程师很好地合作 ,并在讨论实施时说他们的语言。 它确实有助于产品团队中的同理心和互动。
- I can perform design QA and fix small details myself… Of course, not after a code review by a fellow developer who knows I used to write CSS without flexbox in 2019. 我可以自己执行设计质量检查并修复一些小细节……当然,在一位知道我曾经在2019年编写没有FlexboxCSS的开发人员进行代码审查之后,我才可以这样做。
You’ve made it to the end of this story! I hope I’ve achieved my goal to provide you with some food for thought about how close the product design and engineering worlds are, no matter which ‘side’ you belong to.
您已经完成了故事的结尾! 我希望我已经实现了为您提供目标的想法,无论您属于哪个“方面”,都可以考虑一下产品设计和工程领域的紧密程度。
We’re all working together to build something meaningful and have a positive impact, and we can learn from each other more than we’re accustomed to think. Should I write a “design principles applied to development” kind of article next?
我们都在共同努力,以建立有意义的成果并产生积极影响,并且我们可以相互学习 ,而这超出了我们的常规思维。 接下来是否应该写一篇“适用于开发的设计原理”的文章?
Thank you for reading, have a nice day and stay safe!
感谢您的阅读,祝您有美好的一天并保持安全!
ux界面比较多