Remember that this post is not about why we should automate our functional tests. It is also not about technical details of writing tests in any particular programming language or by using any particular framework.Initial investigations Before we start writing any code we should think about best possible technical solution. The goal of this article is not to encourage using any specific framework or library. However, some crucial aspects should be considered here. First of all, we should think about o...
Strona głównaUżytkownik
FutureProcessing | użytkownik
One can ask why we need to think of CR practices at all. Review of code written by another team member can be done without any preparation or introduction. It is true, but there are some aspects that we need to think of. In my opinion, we especially need to support the following values:Quality – Code Review should be done in the same way, no matter if you are hurrying, bored or it’s your 3rd hour of doing CR,Motivation – team has to see value in Code Review, and this value shouldn’t be lost because of ne...
Sztuka programowania 3379 dni, 18 godzin, 58 minut temu 187 źrodło rozwiń
Write better and faster in javascript with built-in array methods (every, some, forEach, map, filter, reduce), different known libraries and lambdas. Also how to extend built-in functions and write custom helpers.
Sztuka programowania 3404 dni, 1 godzinę, 54 minuty temu 207 źrodło rozwiń
There is a belief among many developers that JavaScript is very slow, and writing more code in it than it’s necessary may adversely affect the performance. I guess it’s partially true. Incompetent use of this language can indeed decrease the quality of the project and the performance itself. However, JavaScript is one of the most developing languages.I’ll show you a few examples that will prove that JavaScript engines do what they can to speed up your code. In my work I focus on Google’s open source Java...
In Scrum, every Sprint (iteration) begins with a Sprint Planning Meeting. This meeting has one basic goal, creating a list of user stories which will be delivered in the next sprint. Of course, requirements may also be presented as features, scenarios, etc. I always use user stories, but these rules can also be applied to different types of requirements. Looking from my experience, it is the most difficult event to conduct in the whole Scrum Cycle. Product Owner and Development Team have to work togethe...
There are a lot of aspects to be considered while developing real world applications. Maintainability, Understandability, Clarity, Dependency are just a few of them. We have to work hard to maintain our code and make it self-commenting, preserve it from cyclic dependencies between assemblies or simply, to provide its good quality. There are a lot of tools that may help to achieve these goals e.g. Sonar, ReSharper, JustCode or NDepend. This article explains how to analyse the quality of code with the use ...
To make this review complete, I’m providing solution with examples of all mechanisms usage, it can be found at my GitHub: https://github.com/szabl/AspNetViewsCodeReuseExamples OverviewMethodBrief descriptionUsageHTML HelpersC#/VB.NET methods returning html as a stringBest suits view elements, where quite a lot of logic is necessary to generate short HTML. Rather not good for elements specific to a specific view.Display/Editor TemplateView file used as a template for displaying or editing given data type....
Sztuka programowania 3526 dni, 3 godziny, 25 minut temu 116 źrodło rozwiń
Why does it happen? Why do we limit ourselves to relational databases only? Of course, there exists a set of situations in which relational databases are the best tool for the job, but – conversely – there exists a set of situations where relational database is a very inferior tool. Each type of tool has its purpose, limitations, and applications in which the tool will be the best. The important thing is not to look at the application from the point of view of a database only. We need to look at the ap...
Bazy danych i XML 3528 dni, 20 godzin, 27 minut temu 92 źrodło rozwiń
nodeschool.io I would like to present a highly interesting initiative for everyone keen on topics oriented to Node.js. If you are curious about how to effectively learn of stuff available on the platform, how to effectively use libraries and write the most idiomatic code, which is consistent with the UNIX philosophy, read this article.Why? The major problem when learning new things is related to the first step, even if it concerns a basic question “how to start”. This barrier is often related t...
Modelling load distribution One of the challenges we face during the performance test design is determining the load we should use. By the load here, I mean a number of concurrent users performing certain actions in System Under Test (SUT). Obviously, depending on the type of performance test applied, the load will alter, as we are testing system in search of different class of problems. This article attempts to describe the case in which we will try to simulate the anticipated high traffic in t...
Let me = “introduce F#” If you wonder which programming language is the best I unfortunately have to disappoint you. There is no such thing as “the best programming language” or “the most powerful one”. Additionally, there is also no universal language which could satisfy all needs and be efficient in literally every field. Universal languages, such as very popular C#/Java, could address most, if not all, common programming tasks. However, those languages could be easily outdone by other dedicat...
Sztuka programowania 3569 dni, 1 godzinę, 34 minuty temu 115 źrodło rozwiń
Building better client-side JavaScript applications For some time now, you could have noticed a trend in web applications development to build more and more complicated applications, moving more logic from the server to the client side. Is it an appropriate trend? I don’t know. The discussion between supporters and opponents of each approach may look like discussion concerning superiority of Easter over Christmas; it’s hard to concede the point to any side as they have their arguments. That is w...
Rules of data conversion from document to relational databases This article is hypothetical divagation how to determine and use a set of rules to create relational schema based on MongoDB data. Using only step by step analysis without creating relational model from the very beginning, rules that emerge from that understanding should be simple.1. Quick Introduction to Data Model in Mongo DB1.1. Basic Concepts Table presents the various SQL terminology and concepts as well as the corresponding Mo...
Bazy danych i XML 3597 dni, 20 godzin, 21 minut temu 65 źrodło rozwiń
Automation of desktop applications This article presents principles and best practices related to automation of a desktop application. I will try to explain differences between desktop, web and client/server application to help you to understand influence of unique factors on automation of a desktop application. I am also going to write a few words about tools that are designed to make automation process feasible and easy. For the purpose of this article I will focus on standalone desktop appli...
Introduction to Dependency Injection Sooner or later all of us will hear acronym SOLID. Some friend of us will whisper us that our code should be SOLID. The letter ,,D” is abbrevation of „Dependency Inversion” which means:High-level modules should not depend on low-level modules. Both should depend on abstractions.Abstractions should not depend upon details. Details should depend upon abstractions. Another importan term is IoC (Inversion Of Control). In software engineering, inversion of ...
Sztuka programowania 3618 dni, 4 godziny, 21 minut temu 136 źrodło rozwiń
Selected Aspects of Document Synchronization in Distributed Systems Two of the projects in which I have participated recently, were distributed systems based on the document replication. Each of them was slightly different, which affected the solutions. In this article I’m going to present briefly the main assumptions and requirements for each of the projects, as well as the implemented solutions. I’m also going to mention a few important problems that we had to deal with.General description of ...
Bazy danych i XML 3629 dni, 1 godzinę, 56 minut temu 64 źrodło rozwiń
Software Architecture: design and documentation In my previous article I tried to present the role of the application architect on a general level. Today I’d like to focus on his specific aspects of his work, without which the term “architect” wouldn’t make any sense.Design and documentation A common image of architect’s work, consisting in drawing and describing blocks, puts two activities of design and documentation in one pot. Meanwhile, these are two independent activities. To explain why I...
Architektura 3638 dni, 4 godziny, 11 minut temu 120 źrodło rozwiń
Role of the Application Architect “Architect” is one of the buzzword, sometimes used just to name an important person working in the software development department. In other cases, we will call this way the only people who understand how given software works. For some people it will be another level of software developers’ career ladder. Sometimes word ‘architect’ describes a person who draws lines and rectangles on whiteboards. All in all, most of us saying “architect” does not actually know,...
Architektura 3644 dni, 3 godziny, 59 minut temu 164 źrodło rozwiń
Useful Node.js modules – ssh2 I would like to introduce a very useful Node.js module to you, which can help in automating your daily work or accomplishing non-ordinary and non-obvious task such as SFTP/SSH management.Description ssh2 is a SSH2 client module written in pure JavaScript. In this case the above mentioned module helped me to bootstrap the simple tool a while ago. The main goal of this tool is to automate creating, downloading and uploading a backup to SFTP for one-of-the-most-popul...
CouchDB – short review During one of our last projects we had a small 2-year adventure with Apache CouchDB NoSQL database. Here, I’m going to briefly present its strong points as well as drawbacks.Background Why using yet another NoSQL? CouchDB was chosen based on requirements and assumptions in the project. Especially, easy multi-master replication seemed to be attractive in the context of the project, which was supposed to be a distributed document database without any relations and rather un...
Bazy danych i XML 3679 dni, 23 godziny, 4 minuty temu 82 źrodło rozwiń