As you may already know, Rails 5.1 has brought a lot of new and cool features. You can find a complete description of the release notes here. The upgrade has addressed various performance improvements and security issues. And, of course, all the deprecated code has been removed. However, this article is not about another new version of Rails. The community has already published a ton of posts about that. Instead, we’re going to talk about the challenges you may encounter when upgrading a Rails application. By the way, here are some useful links:
Of all the challenges you may encounter during the upgrade process, the lack of test coverage is probably the most painful one. Still, even if you did receive a project that hadn’t been properly tested, there is no reason to panic. Take a deep breath and start with writing tests for the basic functionality. Doing that is the least you can do to ensure the integrity of the upgrade process.
In some apps, routing may be organized through “match”. In addition to being rather old, such an approach has a negative impact on the performance of the application. The best solution here is to rewrite the routing. But before you jump into doing that, you should know that it’s a complex and time-consuming process. So, be sure you have a clear understanding of the exact steps to take.
When it comes to manifests, most of the guides insist on using a straightforward approach like the following: “...paste this piece of code there”, “...gather everything in a manifest”, “...now that you have UJS, you can use it”. Despite being consistent, guides like these may not always fit in your particular case. In older versions of Rails, assets are usually poorly structured and as a result organized differently. So when you start gathering your manifests, be prepared to find styles and scripts in the most unexpected places. And, if that’s the case, simply piling all the assets won’t be the best idea. What you should do, though, is make changes gradually and check results after each iteration.
If your Rails application is dependent on a couple of third-party Ruby gems, there is a chance you may not be able to upgrade right off the bat. Ideally, gem maintainers are supposed to test their project with a pre-release Rails version so that the gem would be fully compatible by the time the final version of Rails is released. However, in a real world setting, gems that are developed less actively often take more time as well as testing to release.
There is no point in using the most innovative technologies and up-to-date style guides if the application ultimately fails to work as expected. The more application updates there are to roll out, the higher the risk is of skipping some bugs is. This is especially true for applications that are being used by tens of thousands people daily. We’re talking about online stores with wide product ranges, dozens of catalogs and other complex functionality. In such case, one tiny mistake can easily cause permanent damage leading to significant financial and customer loss. That’s why it’s highly important to take additional measures to ensure application integrity.
Be sure to test your application both on the test and the production servers.
Use regression testing to check the basic functionality of your app. If it’s an online store, the primary focus should be placed on the payment and the registration features.
If you are working on a big project (e.g. a high load website), try using Xenu. It’s a simple utility that allows you to go through the website to detect pages that fail to open.
In order to avoid the situation when you find out about bugs in the nick of time, use services like Airbrake and New Relic to monitor the status of your server. If there is a bug or any other issue detected, you will instantly receive a detailed notification about it and thus be able to prevent the unpleasant consequences promptly.
Upgrading is an essential part of Rails application maintenance. Ideally, you should always keep your application up-to-date. After all, it’s the only way you can receive all the newest bug fixes and security patches. However, every application is different. So, the first thing you need to do before actually going for an upgrade is decide if it’s really worth the hassle. If a newer version of Rails comes with features that can clearly benefit your application, then there is no reason why you should hesitate. But if you’re planning to upgrade only for the sake of being ahead of the curve, there is a big chance your efforts may not pay off in the end. At the same time, this doesn’t mean you should avoid the procedure at all. You can read about the consequences of delaying an upgrade in the article by this link. Briefly, the older the version of Rails you use and the longer you wait to upgrade, the more vulnerable your application becomes. What’s more important, this can lead to things like reputation damage, loss of time, potential loss of control over the development processes, legal complications, loss of customers and more.
Mike Abdullah: Sometimes you might want to strip a URL back so it has no path, parameter, query or fragment. e.g. to go from: http://example.com/path;param?query#fragment to: http://example.com/ Heres the trick. Related posts: How to Parse an NSURL Object URL path cheatsheet How to escape (URL encode) host names
David OBrien has published a series of video tutorials using Quartz Composer. Related posts: Quartz composer for iOS Quartz composer for iOS iOS 6 by tutorials: Learn The Latest iOS 6 APIs By Example
Rather than becoming an expert in a deluge of programming technologies—C# and Windows APIs and Visual Studio*; Objective-C and iOS* APIs and Xcode*; Java* and Android APIs and Eclipse*; and so forth—you can take advantage of cross-platform HTML5 If youre using HTML5 today to build rich, interactive web pages (or web apps) then youre [...]
The new features in Xcode Server make it easier than ever for a Mac or iOS development team to create robust, reliable software, thanks to continuous integration, testing, and repository hosting services. Caching Server 2 speeds up the download and delivery of software through the App Store, Mac App Store, and iTunes Store, and it [...]
This app would be a game app. I have my idea, You need to develop it from the ground. I have some experience in it, but not enough. So please write me if You have very good knowledge in application development and apps selling. Regards
App Builder is not so much for developing the perfect mobile UI as it is an app that allows you to get your app design ideas down so that you can access them later on your iPhone. User ability is friendly that both beginners
The Core iOS 6 Developers Cookbook by Erica Sadun. The book is full of “delicious recipes” for everyone who wishes to develop applications for iPhone. It covers the core information on interface elements and designing iOS
To assist in this process, I wrote a quick script to allow me to search for an iOS app by name and instantly write its 1024px version (or the highest resolution available) to the current directory in Terminal.” Using this script and