20th RRUG meeting report - full-text searching and app architecture

iRonin IT Team - Experts in software development
conference, events, iRonin, rails, ruby

We’re happy to report that we participated in another successful RRUG meeting. During this one, two interesting topics were discussed: full-text searching, and IT systems architecture.

Full-text searching

The first presentation was delivered by Maciej Rząsa. To start of, he used some simple examples of how you can introduce the full-text search functionality into the code of your app - and why these ideas (which involve matching text fragments with SQL and regular expressions) are actually terribly inefficient. Next, Maciej explained the idea of text tokenization, paying attention to the simplest way of implementing it and how it helps with full-text searching.

Maciej also covered the normalization of tokenized texts. It’s an important process that can improve searching and make it less vulnerable to user error. The idea of text analysis was explained as a combination of tokenization and normalization. This concluded the theoretical part of the presentation.

The practical part involved letting the audience get familiar with text analyzers used in Elasticsearch. We saw examples of simple text analyses, breaking texts down into tokens, and normalization in Elasticsearch. We learned what the search result score is and what methods can be used to calculate it. The final part of the presentation was focused on how to apply what we’ve learned in practice - to build an autocomplete system for digital questionnaires and forms.

IT system architecture

The author of the second presentation was Paweł Janusz, a specialist from the JEE environment with many years of experience. He spoke about the broad subject of architecture, but focused on the most crucial aspects of it, such as:

  • What is architecture?
  • What’s its purpose?
  • What are the most popular architectural solutions?
  • How to effectively introduce changes to architecture?

Paweł divided architecture into the following levels: system, container, component, and code. A particularly valuable element of his presentation was a section on differentiating between available architecture types, from no architecture, through layered architecture with a classic database, an event-based architecture based on queues, to microservices and serverless. Each approach was described with attention to its advantages and disadvantages.

An important tip regarding introducing architectural changes was emphasizing the need to conduct an event storming, which allows for a better identification of barriers (bounded contexts) in the system under construction. Paweł also shared three good practices to keep in mind while reworking an architecture:

  • Building systems with the knowledge that their architectures are likely to require change;
  • Consulting architectural decisions with the entire development team, SysOps team, and business stakeholders;
  • Introducing changes slowly and iteratively.

A good architecture supports a high level of efficiency and productivity, is easy to maintain and scale, and is secure and reliable. Using these principles and good practices, it’s much easier to create well-designed architectures.

If you missed out on the recent RRUG meeting, keep an eye out for announcements about the next one. Meetings are held regularly and cover many interesting topics related to Ruby and software development.

Would you like to work with a software development team that’s focused on growth, learning and taking on amazing challenges? Check our vacancies.

Author's Bio
iRonin IT Team

Experts in software development

We are a 100% remote team of software development experts, providing web & mobile application development and DevOps services for international clients.

Similar articles
Comments

Bulletproof your development with remote team augmentation

Read how
This page is best viewed in portrait mode
Our websites and web services use cookies. We use cookies and collected data to enhance your experience, provide additional communication channels, improve marketing materials and enhance our offer. IRONIN SP. Z O.O. SP. K. is committed to protecting all the data that we collect or process in any way, especially data of personal nature. By accepting these terms you agree to our usage of cookies and processing your data, according to our Privacy Policy, and you declare that your browser settings reflect your preferences. Read more You have the right to revoke this agreement at any time, based on the terms of our Privacy Policy. You can change cookies settings in your browser. If you do not agree with us using cookies and processing your data, please change your cookies settings in your web browser and reject these terms. You can find more information about cookies, your data privacy This site uses cookies. By continuing to browse the site, you are agreeing to our use of cookies. data processing, and your rights in our Privacy Policy.