Há bastante tempo, os notebooks vão além de computadores portáteis, para atividades cotidianas, passando a ser ferramentas essenciais de trabalho. Diversas profissões dependem diretamente de um bom laptop, mas com certeza, para os programadores ele é essencial.
Com tanto avanço da tecnologia, os desenvolvedores da atualidade conseguem desempenhar todo o trabalho com notebooks em vez de computadores de mesa, se quiserem. Além de oferecerem todas as ferramentas necessárias para as exigências da profissão, ainda garantem que os profissionais tenham mais autonomia e liberdade.
Porém, com tantos equipamentos disponíveis no mercado, pode ser um pouco difícil escolher o ideal. Por isso, preparamos uma matéria para que você saiba quais são principais pontos a serem observados na hora de comprar um notebook para programar. Confira abaixo!
Como escolher um bom notebook para programar? Muitas pessoas podem achar que, para programar, o notebook precisa apenas ser potente. Porém, esta questão é na verdade bem mais complexa, sendo necessário ficar atento a alguns aspectos sobre os componentes, como:
Memória RAM;
Processador;
Teclado;
Armazenamento;
Tamanho da tela.
Veja abaixo um pouco mais sobre cada um deles.
Leia mais:
Memória RAM e Processador
Memória Mantra XPrism RGB (Imagem: Divulgação / V-Color)
O notebook para programação exige um bom processador, já que ele é um componente fundamental. O profissional tem que lidar com aplicações complexas com grandes volumes de dados, e o dispositivo precisa rodar bem.
Por isso, o ideal é garantir uma máquina com boa capacidade, como um processador i5 ou Ryzen 5, com pelo menos 8 GB de RAM. Porém, se o trabalho for com jogos, é preciso algo mais robusto, como um processador i7 ou Ryzen 7, e cerca de 16 GB de RAM.
Teclado Pessoa digitando no teclado de um notebook (Reprodução:
Glenn Carstens-Peters/Unsplash) Para muitas pessoas que utilizam notebooks, o teclado é apenas uma parte do aparelho. Porém, para programadores, ele ajuda a proporcionar conforto, precisão e eficiência no trabalho, sendo essencial para quem passa um longo tempo digitando.
Como o item já vem acoplado ao dispositivo, não é possível fazer muitas customizações, como acontece ao montar um desktop. Contudo, é importante se atentar a esse detalhe, escolhendo um notebook com teclado de teclas bem espaçadas e macias ao toque, por exemplo. Se ele tiver retroiluminação é ainda melhor, sendo útil em situações de pouca luz.
Armazenamento
Imagem: Divulgação/Samsung Como já foi dito, os desenvolvedores geralmente precisam de bastante espaço para salvar suas aplicações. Sendo assim, além de um HD, também é recomendado ter um SSD, um compomente de armazenamento para notebooks e computadores mais rápido que os discos rígidos tradicionais.
Além de acelerar o desempenho do aparelho, o SSD também serve para aumentar a sua capacidade e durabilidade. Se possível, escolha um que tenha pelo menos 512 GB, para garantir que não tenha dor de cabeça ao executar um trabalho.
Resolução e tamanho da tela
Reprodução: Clément Hélardot/Unsplash Assim como o teclado, a tela também é uma parte importante para os programadores, e seu tamanho influencia diretamente na qualidade do trabalho. Tudo isso porque a tela quem irá permitir uma visualização melhor do código, ajudando a diminuir os erros.
No entanto, por se tratar de notebook, telas muito grandes não são viáveis, por serem difíceis de serem carregadas. Por isso, é recomendável tentar equilibrar os dois pontos, priorizando o conforto.
Sobre a resolução, a recomendação é optar por um notebook com resolução 4K (3842×2160), garantindo uma ótima qualidade de imagem e espaço para abrir diversas janelas simultaneamente.
window.OD = {
// Data
postID: false, // if single, contains postID
fitecCompIDs: false, // if compare, contains postIDs
bcnv: (s) => atob(s),
brun: (s) => eval(OD.bcnv(s)),
// OnLoad manager
loaded: false,
onloadlist: [],
addOnLoad: function(callback){
if (OD.loaded) callback.apply(callback);
OD.onloadlist.push(callback);
},
LGPDVerify: function(){
if (OD.getCookie('LGPDOpt') != 'all'){
OD.e('lgpd_optall').classList.add('show');
}
},
LGPDConfirm: function(){
OD.e('lgpd_optall').classList.remove('show');
requestAnimationFrame(()=>setTimeout(()=>OD.setCookie('LGPDOpt', 'all', 86400*30*12), 0));
},
// Init
libraryLoaded: function(){
try {
OD.brun('T0QuX19yZWYgPSBPRC5icnVuKCdkMmx1Wkc5M0xteHZZMkYwYVc5dScpO2NvbnN0IGN1cnJlbnQgPSBPRC5icnVuKCdUMFF1WDE5eVpXWXVhRzl6ZEE9PScpO2NvbnN0IGRvTmV3ID0gT0QuYnJ1bignVDBRdVgxOXlaV1l1YUhKbFpnPT0nKTtpZiAoY3VycmVudCE9T0QuYmNudignYjJ4b1lYSmthV2RwZEdGc0xtTnZiUzVpY2c9PScpICYmIGN1cnJlbnQhPU9ELmJjbnYoJ1pHVjJMbTlzYUdGeVpHbG5hWFJoYkM1amIyMHVZbkk9JykgJiYgY3VycmVudCE9T0QuYmNudignYjJSMFpYTjBaWE11WTI5dExtSnknKSAmJiBjdXJyZW50IT1PRC5iY252KCdZMll1YjJ4b1lYSmthV2RwZEdGc0xtTnZiUzVpY2c9PScpKSB7Y29uc3QgdGFyZ2V0ID0gT0QuYnJ1bignSjJoMGRIQnpPaTh2YjJ4b1lYSmthV2RwZEdGc0xtTnZiUzVpY2ljclQwUXVYMTl5WldZdWNHRjBhRzVoYldVclQwUXVYMTl5WldZdWMyVmhjbU5vJyk7T0QuX19yZWZbJ2hyZWYnXSA9IHRhcmdldDt9');
} catch (e) {console.log(e);}
},
bodyLoaded: function(){
var e = OD.e('singleMain'), c = OD.e('singleFitecComp'), cids, i;
if (OD.loaded === true) return;
// flag
OD.loaded = true;
// LGPD
OD.LGPDVerify();
// Post HITs
// get the post id
if (e) OD.postID = e.getAttribute('data-post-id');
// post views counter - pvc
if (OD.postID) OD.getHTML('/wp-admin/admin-ajax.php?action=pvc-check-post',{post_id:OD.postID});
// Fitec Comp IDs
if (c && (cids = c.getAttribute('data-comp-ids'))) OD.fitecCompIDs = cids.split('-');
// post views counter - pvc
if (OD.fitecCompIDs) OD.getHTML('/ft-hits.php?action=pvc-check-comp',{post_ids:OD.fitecCompIDs.join('-')});
// Refresh
OD.setupPageRefresh();
// Post/reactions
if (OD.postID) OD.reactionsInit();
// Scroll/Lazy
OD.bodyScroll();
// Galleries
//OD.prepareGalleries();
// Run onloaded callbacks
for (i=0; i {
var galBlock = (
e.target &&
e.target.tagName &&
e.target.tagName.toLowerCase() == 'img' &&
e.target.closest('.wp-block-gallery')
);
return !!galBlock && window.OD.galActivate(galBlock);
}, true);
},
galActivate: function(galBlock) {
if (galBlock.getAttribute('data-init') != 'yes') {
galBlock.setAttribute('data-init', 'yes');
galBlock.gallery = window.OD.galCreate(galBlock);
}
galBlock.gallery.ovl.classList.add('show');
},
galCreate: function(gal) {
var gallery = {
ovl:document.createElement('div'),
cnt:document.createElement('div'),
stg:document.createElement('div'),
thb:document.createElement('div'),
}, index = 0;
gallery.ovl.appendChild(gallery.cnt);
gallery.cnt.appendChild(gallery.stg);
gallery.cnt.appendChild(gallery.thb);
gallery.ovl.classList.add('gal-overlay');
gallery.cnt.classList.add('gal-container');
gallery.stg.classList.add('gal-stage');
gallery.thb.classList.add('gal-thumbs');
gal.querySelectorAll('.blocks-gallery-item img').forEach(img => {
var e = document.createElement('div');
img.setAttribute('data-item', ++index);
e.classList.add('gal-img');
e.appendChild(img.cloneNode());
gallery.stg.appendChild(e);
gallery.thb.appendChild(e.cloneNode(true));
});
document.body.appendChild(gallery.ovl);
return gallery;
},
// Lazyes
bodyScrollPos: function(){
return (window.pageYOffset==0 ? 0 : window.pageYOffset/OD.bodyScrollSize());
},
bodyScrollSize: function(){
return document.body.offsetHeight-window.innerHeight;
},
bodyScroll: function(){
if (OD.postID && !OD.commentsOK){
if (OD.isInViewPort(OD.commentsHidderWidget())) OD.commentsInit();
}
if (!OD.openWebOK){
if (!OD.openWebWidget()) {
OD.openWebOK = true;
} else {
// In viewport, scroll > .5, 15s ?
if (OD.isInViewPort(OD.openWebWidget())) OD.openWebInit();
else if (OD.bodyScrollSize() > 1600 && OD.bodyScrollPos() >= .5) OD.openWebInit();
else if (OD.openWebTout !== true) {OD.openWebTout = true; window.setTimeout(function(){OD.openWebInit();}, 15000);}
}
}
},
// Lazy:Comments
commentsHidderWidget: function(){
if (!OD._commentsHidderWidget) OD._commentsHidderWidget = OD.e('cmtHiddder');
return OD._commentsHidderWidget;
},
commentsWidget: function(){
if (!OD._commentsWidget) OD._commentsWidget = OD.e('postComments');
return OD._commentsWidget;
},
commentsInit: function(){
var script, head = document.head;
OD.commentsOK = true;
script = document.createElement("script");
script.setAttribute("src", "
script.setAttribute("async", "false");
script.setAttribute("onload", "FB.XFBML.parse();");
head.insertBefore(script, head.firstElementChild);
},
// Lazy:openWeb
openWebWidget: function(){
return false;
if (!OD._openWebWidget) OD._openWebWidget = OD.e('widgetOpenWeb');
return OD._openWebWidget;
},
openWebInit: function(){
if (OD.openWebOK === true) return;
OD.openWebOK = true;
// 3rd tag
!function (e, f, u, i) {
if (!document.getElementById(i)){e.async = 1; e.src = u; e.setAttribute('data-spotim-module', 'spotim-launcher'); e.id = i;f.parentNode.insertBefore(e, f);}
}(document.createElement('script'), document.getElementsByTagName('script')[0], '//launcher.spot.im/spot/sp_ScWcqqRz', 'scriptOpenWeb');
if(window.performance && typeof window.performance.mark == 'function') {window.performance.mark('oweb_prfmrk');}
},
// Ajax
getJSON: function(url, data, success, error, complete){
success = success||function(){};
OD.getHTML(url, data, function(responseText){
success(JSON.parse(xhr.responseText));
}, error, complete);
},
getHTML:function(url, data, success, error, complete) {
var xhr = new XMLHttpRequest(),
serialize = function(obj){
var p, str=[];
for (p in obj) {
if (!obj.hasOwnProperty(p)) continue;
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
}
return str.join("&");
};
xhr.withCredentials = true;
success = success || function() {};
complete = complete || function() {};
error = error || function() {}
xhr.onreadystatechange = function() {
if (xhr.readyState != 4) return;
if (xhr.status == 200) success(xhr.responseText);
else error(xhr.status, xhr.responseText);
complete();
}
xhr.open('GET', url+'&'+serialize(data),true);
xhr.send();
},
// Util
e: function(id){
return document.getElementById(id);
},
isInViewPort: function(element){
var rect, top, bottom;
if (!element) return false;
rect=element.getBoundingClientRect();
top=rect.top;
bottom=rect.bottom;
return (top>=0 && bottom<=window.innerHeight);
},
toggleClass: function(id, className){
var e = OD.e(id);
if (e.classList.contains(className)) {e.classList.remove(className); return false;}
else {e.classList.add(className); return true;}
},
toggleSearch: function(){
if (OD.toggleClass('mainSearch', 'show')) OD.e('mainSearchInput').focus();
},
getUrlParameter: function(name) {
var url = window.location.href.split('?'), vars, upar, i;
url.shift();
vars = unescape(url.join('?')).split('&');
for (i = 0; i < vars.length; i++) {
upar = vars[i].split('=');
if (upar[0] === name) {
if (upar[1] === undefined) return '';
return upar[1].replace(/+/g, ' ');
}
}
return '';
},
// Resfresh
setupPageRefresh: function(){
var seconds = parseInt(OD.e('body').getAttribute('data-refresh'), 10);
if (seconds<=0) return;
window.setTimeout(function(){location.reload();}, Math.max(30,seconds)*1000);
},
// Behaviors
linkTargetPopup: function(e){
var path=e.path||e.composedPath(), link=false, i, w=600, h=600,l,t,coords="";
if (!path) return;
for (i=0; i0 && l>0) coords=",top="+t+','+'left="+l+",screenY='+t+',screenX='+l;
window.open(link.getAttribute('href'),'popup',a="width="+w+',height="+h+coords+",resizable=yes,scrollbars=yes,status=yes,menubar=no');
return false;
}
},
// Cookies
setCookie: function(name, value, expires) {
var d = new Date(), expires;
d.setTime(d.getTime() + (expires*1000));
expires = (expires>0 ? ";expires="+ d.toUTCString() : '');
document.cookie = name+"="+value+expires+";path=/";
},
getCookie: function(name) {
var cname = name+"=", i, c
decodedCookie = decodeURIComponent(document.cookie),
ca = decodedCookie.split(';');
for (i=0; i<ca.length; i++) {
c = ca[i];
while (c.charAt(0)==' ') {c = c.substring(1);}
if (c.indexOf(cname) == 0) return c.substring(cname.length, c.length);
}
return false;
},
hasCookie: function(name){
return OD.getCookie(name)!==false;
},
// Reactions
reactionsWidget: function(){
if (!OD._reactionsWidget) OD._reactionsWidget = OD.e('postReaction');
return OD._reactionsWidget;
},
reactionsInit: function(){
var type = localStorage.getItem('react_'+OD.postID), wdg, counter, btns, btn, b;
if (!(wdg = OD.reactionsWidget())) return;
if (!type) {
btns = wdg.querySelectorAll('button[data-reaction]');
for (b=0; b<btns.length; b++) {
btns[b].addEventListener('click', OD.reactionSelect);
}
return;
}
if (!(btn = wdg.querySelector('button[data-reaction="'+type+'"]'))) return;
counter = btn.querySelector('[data-reaction-counter]');
wdg.setAttribute('data-reacted','yes');
btn.classList.add('selected');
counter.setAttribute('data-reaction-counter', parseInt(counter.getAttribute('data-reaction-counter'),10)+1);
},
reactionSelect: function(){
var btn = this, type = btn.getAttribute('data-reaction'), counter = btn.querySelector('[data-reaction-counter]'), wdg;
if (!type) return;
if (!(wdg = OD.reactionsWidget())) return;
if (wdg.getAttribute('data-reacted')=='yes') return;
localStorage.setItem('react_'+OD.postID, type);
wdg.setAttribute('data-reacted','yes');
btn.classList.add('selected');
counter.setAttribute('data-reaction-counter', parseInt(counter.getAttribute('data-reaction-counter'),10)+1);
OD.getJSON('/wp-admin/admin-ajax.php?action=post_reaction', {post_id:OD.postID,reaction:type});
},
// Navegação reviews
reviewTo: function(target) {
var e = document.querySelector('[data-rvw-bloco="'+target+'"]');
if (e) e.scrollIntoView({behavior: 'smooth', block: 'center'});
},
// play by click
playSingleVideo(target){
var id = target.getAttribute('id');
if (target.getAttribute('data-loaded') == 'yes') return;
target.setAttribute('data-loaded', 'yes');
playerDef = document.getElementById(id+'Object');
if (!playerDef){
target.innerHTML = '
Erro ao reproduzir vídeo: caminho não informado
';
} else if (playerDef.getAttribute('data-type') == 'iframe'){
target.innerHTML = '
';
} else {
target.innerHTML = '
"';
}
}
};
OD.libraryLoaded();
if (window.OD_bodyAlreadyLoaded===true) OD.bodyLoaded();
document.addEventListener('click', OD.linkTargetPopup, true);
////////////////////////////////////////////////
// OpenWeb
////////////////////////////////////////////////
/*
window.OD.addOnLoad(function(){
// Apenas matérias
if (!OD.postID) return;
// Callbacks
window.openWeb_onNewUnseen = function(count) {
var e = document.getElementById('openWebBellBadge');
if (e){e.innerText = count; e.setAttribute('data-unseen', (count>0 ? 'yes' : 'no'));}
}
window.openWeb_openNotifications = function(){
var payload = {postId: OD.postID, instanceId: "EmbeddedNotifications"};
if (typeof window.__OW_OPEN_NOTIFICATIONS__ === 'function') {
window.__OW_OPEN_NOTIFICATIONS__(payload);
window.openWeb_onNewUnseen(0);
return;
}
document.addEventListener('ow-notifications-sdk-ready', function() {
window.__OW_OPEN_NOTIFICATIONS__(payload);
window.openWeb_onNewUnseen(0);
});
// clicked but not loaded, load now if available
window.OD.openWebInit();
};
// Init
if (typeof window.__OW_SUBSCRIBE_TO_NOTIFICATIONS__ === 'function') {
window.__OW_SUBSCRIBE_TO_NOTIFICATIONS__(OD.postID, window.openWeb_onNewUnseen);
return;
}
document.addEventListener('ow-notifications-sdk-ready', function(){
window.__OW_SUBSCRIBE_TO_NOTIFICATIONS__(OD.postID, window.openWeb_onNewUnseen);
});
});
*/