Pull to refresh
45.21

Designing and refactoring *

Reorganizing the code

Show first
Rating limit
Level of difficulty

Use-Case Evolution Guide

Level of difficultyMedium
Reading time13 min
Views931

Modern product development demands more and more sophisticated designs. This in turn leads to the increased complexity of both demand and implementation. Business is flooding the architecture and development teams with the new and changed requirements. Development teams are struggling to understand what the business demand is and find the best product increment strategy. One of the widely adopted conversational methods is the Use-Cases. This guide is intended to shed light on the process of the requirements development and maturing.

Read more
Total votes 5: ↑5 and ↓0+5
Comments0

Guide to naming in code

Reading time15 min
Views8.8K

We present a guide to name entities in code based on putting naming in perspectives of semantic space, design, and readability. 

The main idea is that naming should not be considered as creation of tags, but as a fundamental part of design process, which implies integral and consistent vocabulary to be used. We discuss naming process and naming formalism from these perspectives and we provide guidelines for practical use.

The work is based on 15 years of experience in engineering work, coding and development management in high-tech industries.

Read more
Total votes 3: ↑3 and ↓0+3
Comments1

A Book on the API Design

Reading time1 min
Views1.8K

This year, each of us seeks a special way to pass the time. I am writing a book, for example. A book about one thing I love dearly: the API. (You may read who am I and what expertise got in APIs in my LinkedIn profile.)


I've just finished the first large section dedicated to the API design. You may read it online, or download either pdf or epub version, or take a look at the source code on Github.


The book is distributed for free under a CC-BY-NC license. Enjoy!

Total votes 1: ↑0 and ↓1-1
Comments0

Agreements as Code: how to refactor IaC and save your sanity?

Reading time9 min
Views1.2K


Before we start, I'd like to get on the same page with you. So, could you please answer? How much time will it take to:


  • Create a new environment for testing?
  • Update java & OS in the docker image?
  • Grant access to servers?

There is the spoiler from the TechLeadConf. Unfortunately, it's in Russian


It will take longer than you expect. I will explain why.

Read more →
Total votes 3: ↑3 and ↓0+3
Comments0

The Anatomy of LuaJIT Tables and What’s Special About Them

Reading time10 min
Views3.4K
I don't know about you, but I really like to get inside all sorts of systems. In this article, I’m going to tell you about the internals of Lua tables and special considerations for their use. Lua is my primary professional programming language, and if one wants to write good code, one needs at least to peek behind the curtain. If you are curious, follow me.


Read more →
Total votes 28: ↑28 and ↓0+28
Comments0

Let's help QueryProvider deal with interpolated strings

Reading time5 min
Views1.7K

Specifics of QueryProvider


QueryProvider can’t deal with this:


var result = _context.Humans
                      .Select(x => $"Name: {x.Name}  Age: {x.Age}")
                      .Where(x => x != "")
                      .ToList();

It can’t deal with any sentence using an interpolated string, but it’ll easily deal with this:


var result = _context.Humans
                      .Select(x => "Name " +  x.Name + " Age " + x.Age)
                      .Where(x => x != "")
                      .ToList();

The most painful thing is to fix bugs after turning on ClientEvaluation (exception for client-side calculation), since all Automapper profiles should be strictly analyzed for interpolation. Let’s find out what’s what and propose our solution to the problem.

Read more →
Total votes 12: ↑11 and ↓1+10
Comments0

Authors' contribution