To refactor or not to refactor? (Part II)

Andrey Akinshin

So, when to refactor?
I am sorry if the first part of this article made you think that refactoring only brings problems. I still insist that the code should be readable and understandable. It also should be convenient to use and easy to maintain and develop. Positive approach is better than the negative one. So, think of refactoring not as of the source of problems, but as of your good friend who will come to rescue in an hour of need. Moreover, this friend can reduce the amount of such hours in your promising future. I would like to indicate several moments when refactoring is really relevant.
code refactoring
  Read the rest of this entry »

September 25th, 2014

To refactor or not to refactor? (Part I)

Andrey Akinshin

I like refactoring. No, I love refactoring. No, not even like this. I awfully love refactoring.

I hate bad code and bad architecture. I feel quite creepy when I design a new feature and the near-by class contains absolute mess. I just can’t look at the sadly-looking variables. Sometimes before falling asleep I close my eyes and imagine what could be improved in the project. Sometimes I wake up at 3:00AM and go to my computer to improve something. I want to have not just code, but a masterpiece that is pleasant to look at, that is pleasant to work with at any stage of the project.
If you just a little bit share my feelings we have something to talk about. The matter is that over some time something inside me began to hint that it’s a bad idea to refactor all code, everywhere and all the time. Understand me correctly – code should be good (even better when it’s ideal), but in real life it’s not reasonable to improve code instantly. I formed some rules about the refactoring timeliness. If I am itching to improve something, I look at these rules and think “Is that the moment when I need to refactor the code?” So, let’s talk about when refactoring is necessary and when it’s inappropriate.
  Read the rest of this entry »

September 10th, 2014

Reliable multi-platform reporting component for the most complicated reporting challenges.

Ekaterina Nebogina

Development of professional and stable business software is a real challenge for developers. It’s also time and resource consuming. To save time and money developers prefer to use universal development frameworks and packages including grids, charts, calendars, tree views, textboxes, menus and other tools including reporting components. Such packages cover most development tasks. But when it comes to more complicated and specific issues they seem to be not flexible enough to address them.
silverlight, wpf and winrt report viewers
Perpetuum Software focused on a flagship reporting component to make it a good fit even for the most challenging reporting tasks. SharpShooter Reports has 12+ years of successful history full of happy customers from multinational corporations to freelancers who value company reliability and loyalty to developers’ productivity and success. Read the rest of this entry »

August 6th, 2014

Mobi DB 2.0 – Android Databases Have Never Been So Easy to Manage!

Ekaterina Nebogina

Perpetuum Software announces a new version of Mobi DB which is a comprehensive database management tool for Android devices. It is now packed with new powerful features that make it possible to create complex relational databases and efficiently organize data.

Very often people need to store not only flat data in a single table (for example, DVD list, personal wine collection, etc.), but also some bigger data that should be kept in a database with many tables that are somehow related to each other. Now Mobi DB can handle this task. Adding tables is done with a single tap: users can select from the list of pre-set templates or create a new one. Convenient visual designer will help setting up the form: add, remove, and locate fields to make entries look fine.
  Read the rest of this entry »

July 24th, 2014